क्या अनुप्रयोगों के ओएस एक्स ऑटो समाप्ति को अक्षम करने का एक तरीका है?


11

क्या किसी दिए गए एप्लिकेशन के लिए ऑटो-टर्मिनेशन को अक्षम करने के लिए ओएस एक्स लॉयन को बताने का कोई तरीका है जिसे आप ऑटो टर्मिनेट नहीं करना चाहते हैं?

FYI करें शेर एक विचित्र है यदि आप पहले से ही नहीं जानते हैं, क्या होगा यदि आप नहीं चाहते कि यह एक निश्चित ऐपेटोन के लिए हो।

यदि यह तय करता है कि संसाधनों की आवश्यकता है, तो शेर आपकी पीठ के पीछे से आपके दौड़ने वाले अनुप्रयोगों को छोड़ देगा, और यदि आप उनका उपयोग नहीं करते हैं। यह निर्धारित करने के लिए कि क्या कोई एप्लिकेशन "उपयोग में" है, बहुत रूढ़िवादी है: यह सक्रिय अनुप्रयोग नहीं होना चाहिए, इसमें कोई दृश्यमान, गैर-न्यूनतम विंडो नहीं होना चाहिए - और निश्चित रूप से, यह स्वत: समाप्ति का स्पष्ट समर्थन करना चाहिए।

उदाहरण के लिए, मान लें कि मैं TextEdit को स्वचालित रूप से तब नहीं छोड़ना चाहता जब मेरे पास कोई TextEdit विंडो खुली न हो और किसी अन्य एप्लिकेशन पर स्विच न हो।

स्वत: समाप्ति के लिए मैक ऐप प्रोग्रामिंग गाइड सेक्शन पर एक नज़र डालने के बाद मुझे लगा कि मैं TextEdit के लिए No. Info.plist फ़ाइल के मूल्य के साथ NSSupportsAutomaticTermination कुंजी जोड़ने का प्रयास करूंगा। (काम नहीं किया: TextEdit खुले पर क्रैश हो जाता है।)

ध्यान दिया जाए, फ़ाइल में NSSupportsAutomaticTermination कुंजी (जिसका अर्थ है कि Apple ऑटो समाप्ति को सक्षम करने के लिए Apple NSProcessInfo का उपयोग कर रहा था ) को शामिल नहीं करता है, इसलिए एक कुंजी जोड़ने से शायद कोई प्रभाव नहीं होगा क्योंकि NSProcessInInterides की फाइल में क्या है। (सत्यापित यह काम नहीं करता है, NSSupportsAutomaticTermination कुंजी और नहीं के मूल्य सहित संशोधित Info.plist के साथ स्व-हस्ताक्षरित TextEdit द्वारा)।

एक साइड इफेक्ट का उल्लेख है कि Info.plist फ़ाइल में कुछ भी बदलने से TextEdit खुलने पर क्रैश हो जाता है। क्रैश लॉग को "कोड हस्ताक्षर अमान्य" के रूप में नोट किया गया है, जिसका अर्थ है कि TextEdit ऐप और इसकी सभी सामग्री कोड हस्ताक्षरित हैं। कोड साइनिंग कार्यcodesign में बताए अनुसार कमांड और एक स्व-हस्ताक्षरित रूट प्रमाणपत्र का उपयोग करके ऐप को स्व- हस्ताक्षर करना है

मैंने अब तक जो भी कोशिश की है उसके बाद, TextEdit अभी भी ऑटोमैटिक टर्मिनेशन का पालन करता है।


1
तो ... यदि आप ऐप को स्व-साइन करते हैं, तो यह काम करता है?
jtbandes

1
नहीं, कार्यक्रम अभी भी स्वत: हस्ताक्षर करने के बाद भी समाप्त हो जाता है, भले ही मैं Info.plist में क्या जोड़ा है की परवाह किए बिना
MrDaniel

1
क्या आपने TextEdit के लिए उदाहरण स्रोत को डाउनलोड करने की कोशिश की है जो Apple देव उपकरण और संपादन (या हटाने) NSProcessInfo सामान के साथ प्रदान करता है जो ऑटो समाप्ति के लिए रजिस्टर करता है?
काजुनलुके

किसी ने यह कोशिश नहीं की, कि इस मामले में काम करना चाहिए। लेकिन यह सवाल TextEdit से परे है। यह डेवलपर के कोड कोड स्तर के हस्तक्षेप के साथ क्या हम इसके आसपास काम कर सकते हैं, यह एक सवाल है। चूंकि ऑटो समाप्ति का समर्थन करने वाले ऐप्स के लिए हमारे पास हमेशा स्रोत कोड तक पहुंच नहीं होगी।
MrDaniel

1
"यह है कि एप्पल कैसे काम करता है" जो कि सिर्फ फर्जी है। यह एक नई विशेषता है, उस पर अच्छी तरह से विज्ञापित नहीं है। सेब डॉक्स से यह भी स्पष्ट नहीं है कि ओएस के लिए ऑटो प्रोग्राम को समाप्त करने के लिए क्या आवश्यक है। और Apple इसे विज्ञापित करने में विफल रहता है और न ही अंत उपयोगकर्ताओं के लिए लायन फीचर पेज पर इसका उल्लेख करता है। मुझे लगता है कि इसका कुछ नया Apple कोशिश कर रहा है। यदि अंतिम उपयोगकर्ता को यह पसंद नहीं है तो उन्हें Apple और Developers को आवाज़ देनी चाहिए ताकि वे इसे बेहतर बना सकें।
MrDaniel

जवाबों:


14

आपकी इच्छा मेरी टर्मिनल कमांड ;-)

defaults write -g NSDisableAutomaticTermination -bool yes

ध्यान दें कि चूंकि स्वचालित समाप्ति वास्तव में अनुप्रयोगों को नहीं छोड़ती है, बल्कि उन्हें छुपाता है, इसलिए प्रभावी होने के लिए उन्हें ठीक से छोड़ दिया जाना चाहिए।


2
बहुत बढ़िया, अच्छा user22760 खोजें। जैसा कि ऊपर उल्लेख किया गया है और यह काम करता है, धन्यवाद। TextEdit.app का परीक्षण मामला अब चूक को चलाने के बाद स्वत: समाप्त हो जाता है ... और फिर TextEit को खोलना और छोड़ना। TextEdit को फिर से खोलने पर यह बिना विंडो खुले, और बैकग्राउंड में चलने के साथ ऑटोटेर्मिनेट नहीं होगा।
मृणाल

दिलचस्प। इस आदेश को आज़माने के बाद, यह वास्तव में काम करता है। हालाँकि, इसे पूर्ववत करने की कोशिश अधिक कठिन साबित हुई है। डिफॉल्ट्स -g NSDisableAutomaticTermination -bool नहीं, या गलत, या हटाने की कुंजी का कोई प्रभाव नहीं होता है और अनुप्रयोग स्वचालित रूप से समाप्त नहीं होंगे
DrFloyd5

यह चमत्कार आदेश मेरे लिए मावेरिक्स पर काम करता है! सत्र में वापस आने या नया सत्र खोलने पर यह प्रभावी होता है।
निकोलस बारबुल्स्को

जोड़ा गया निर्देश लॉन्च करने के लिए बहुत बहुत धन्यवाद और मैन्युअल रूप से ऐप को छोड़ दें और फिर प्रभाव को ठीक से देखने के लिए इसे फिर से लॉन्च करें!
jtheletter

1

इसे ठीक करने का एक निश्चित तरीका है, यदि आपका हार्डवेयर इसका समर्थन करता है। आप Mac OS X 10.7 (लायन) से Mac OS X 10.6 (स्नो लेपर्ड) में अपग्रेड कर सकते हैं।

जबकि सभी हार्डवेयर जो लायन को चलाएंगे, वे इस बेहतर ऑपरेटिंग सिस्टम का समर्थन कर सकते हैं (दुख की बात है कि 2011 के मध्य में मैकबुक एयर नहीं है), इसमें गैर-ऑटो-टर्मिनेशन, रोसेटा जैसी विशेषताएं शामिल हैं (जो इंटेल प्रोसेसर को पीपीसी के लिए संकलित सॉफ्टवेयर चलाने में सक्षम बनाती हैं) प्रोसेसर), और उत्कृष्ट वायरटैप स्टूडियो में प्रति-ऐप रिकॉर्डिंग सुविधाओं के साथ संगतता।

किसी भी उन्नयन के साथ, कुछ सुविधाएँ खो जाती हैं (जैसे कि मिशन नियंत्रण , लॉन्च पैड , कुछ इशारे) और कुछ ऑपरेटिंग सिस्टम quirks उपयोग करने के लिए कुछ ले रहे हैं (उदाहरण के लिए स्क्रॉल की दिशा उलट है), लेकिन सभी में, यह एक नया है ठीक उन्नयन।


2
अच्छी बात है, लेकिन अधिकांश उपयोगकर्ताओं के लिए ऑटो टर्मिनेशन स्नो लेपर्ड पर वापस जाने के लायक नहीं है, कुछ उपयोगकर्ताओं के लिए यह सिर्फ एक छोटी सी झुंझलाहट है, मैं उनमें से एक नहीं हूं।
मृणाल

1
यह सुनिश्चित करने के लिए एक चरम समाधान है, लेकिन यह कई मायनों में से एक है, हिम तेंदुआ शेर से बेहतर है। उनमें से संचयी प्रभाव स्नो लेपर्ड को चाहने के लिए किसी को प्रेरित कर सकता है। उस ने कहा, मैं सिर्फ इसके साथ रहना सीख रहा हूं, क्योंकि लायन की अन्य विशेषताएं (विशेष रूप से आईक्लाउड से संबंधित) इसे कमियां बनाने के लायक बनाती हैं।
डैनियल

सवाल सिंह के बारे में है।
ग्राहम पेरिन

1
@GrahamPerrin तो मेरा जवाब था। मेरा कहना है कि यह कई चीजों में से एक है जिसे शेर ने तोड़ दिया, और एक समाधान शेर को नहीं चलाना हो सकता है।
डैनियल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.