जवाबों:
LaunchAgent अक्षम करें (LaunchDaemons नहीं) और अपनी मशीन को रिबूट करें ( बिना sudo के):
$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
यदि आप इसे एक बिंदु पर फिर से सक्षम करना चाहते हैं, तो:
$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
sudo
launchctl list
?
एक समाधान यह है कि लॉगिन करने के बाद gamed सेवा को रोकने के लिए एक bash स्क्रिप्ट बनाएं। बैश स्क्रिप्ट बनाने के लिए OS X में ऑटोमेटर का उपयोग करें और फिर इसे अपने ओएस एक्स खाते में लॉगिन आइटम के रूप में जोड़ें। अगली बार जब आप लॉगिन करते हैं, तो आपको स्क्रिप्ट निष्पादित करने के लिए संकेत मिलना चाहिए। आम तौर पर मैं इंतजार करता हूं जब तक मुझे लिटिल स्निक से अलर्ट नहीं मिल जाता है कि घर पर फोन आ रहा है तो मैं स्क्रिप्ट को चलाने के लिए 'जारी रखें' पर क्लिक करता हूं। यह पूर्ण नहीं किया गया है और यदि आप OS X में लॉगिन करने के तुरंत बाद इसे चलाते हैं तो आप समस्याओं का सामना कर सकते हैं। मैं उन समाधानों से दूर रहना पसंद करता हूं जो सेवा को अक्षम करते हैं क्योंकि उन्हें SIP को अक्षम करने / ओवरराइड करने की आवश्यकता होती है, जिसकी मैं सलाह देता हूं।
यहाँ बैश स्क्रिप्ट का उपयोग किया गया है। इसमें सुधार के किसी भी सुझाव का स्वागत है।
#!/bin/bash
chkService=gamed
chkCount=10
chkStatus=$(ps ax | grep "$chkService" | grep -v grep | grep " T " | wc -l)
while [ $chkStatus -ne 1 ]; do
chkProcess=$(ps ax | grep -v grep | grep "$chkService" | wc -l)
if [ $chkProcess -ne 0 ];
then
KILLALL -STOP "$chkService"
chkCount=0
chkStatus=$(ps ax | grep gamed | grep -v grep | grep " T " | wc -l)
else
SLEEP=1
chkCount=$((chkCount-1))
fi
done
समस्या यह है कि ऊपर दिया गया स्वीकृत उत्तर:
launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
अब काम नहीं करता है। मैंने इसे -w
ध्वज का उपयोग करते हुए भी देखा है । किसी भी मामले में, हाल के अपडेट में, मुझे लगता है कि एल कैपिटन या योसेमाइट के आसपास, आपको इसके बजाय एक संदेश मिलता है
सिस्टम इंटीग्रिटी प्रोटेक्शन लगे रहते हुए ऑपरेशन की अनुमति नहीं है
सिस्टम इंटीग्रिटी प्रोटेक्शन को एसआईपी के संक्षिप्त नाम से भी जाना जाता है। इसे अक्षम करने के लिए आपको रिकवरी ओएस में बूट करना होगा और रन करना होगा csrutil disable
।
मैंने पिछले रिलीज में यह क्रम किया है और इसने launchctl
कमांड के माध्यम से gamed को निष्क्रिय करने में सक्षम किया है ।
मुझे लगता है कि गैम अक्षम होने के बाद, कोई एसआईपी को फिर से सक्षम कर सकता है। शायद यह दोनों दुनिया के लिए सबसे अच्छा होगा, हालांकि यह सभी में एक कठिन प्रक्रिया है।
किस बारे में sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
ओएस सिएरा सिस्टम सेटिंग्स, इंटरनेट अकाउंट्स पर जाएं और सूची के बाईं ओर गेम सेंटर (माइनस के साथ) को हटा दें।
इससे सुरक्षा के दृष्टिकोण से कोई फर्क नहीं पड़ता है क्योंकि यह एसआईपी से पहले काम करने वाले बिलकुल ऐसे ही सिस्टम को वापस ला देता है, और लगभग सभी यूनिक्स सिस्टम अभी भी काम करते हैं। SIP का मूल्य सबसे अधिक बहस योग्य है। यह प्रश्न को संबोधित करता है क्योंकि लॉन्च किए गए कमांड फ़ाइल को उतारने के लिए केवल लॉन्चक्टल कमांड का उपयोग करने का एकमात्र तरीका एसआईपी को बूट करना है, बूट फाइल को अनलोड करना है, और फिर, यदि वांछित है, तो एसएनआईपी को फिर से जोड़ना।
एक और विकल्प जो 10.11.6 पर काम करता है, वह @ ले-विज्ञान द्वारा सुझाई गई विधि पर भिन्नता है। एक शेल स्क्रिप्ट बनाएँ, जो नामांकित प्रक्रिया को निष्क्रिय करता है:
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
स्लीप कमांड यहाँ बताई गई स्क्रिप्ट को छोड़ने की प्रक्रिया शुरू करने से पहले 30 सेकंड तक प्रतीक्षा करने के लिए कहती है, सिस्टम को इसे समाप्त करने की कोशिश करने से पहले लोड किए गए game को पर्याप्त समय देने के लिए; आप आवश्यकतानुसार समय की मात्रा को समायोजित कर सकते हैं। "किल -9" कमांड बल आपके द्वारा अनुरोध की गई प्रक्रिया को पूरा करता है, लेकिन यह केवल प्रक्रिया आईडी संख्या को स्वीकार करता है, प्रक्रिया नाम नहीं, इसलिए "pgrep" का उपयोग प्रक्रिया आईडी को देखने के लिए किया जाता है। इस बात पर ध्यान दें कि आप स्क्रिप्ट को कहाँ सहेजते हैं (इस उदाहरण के लिए, मैं इसे / users / myaccountname /) में "forceQuitGamed" के रूप में सहेजूँगा।
स्क्रिप्ट निष्पादन की अनुमति दें:
sudo chmod +x ~/forceQuitGamed
लॉन्च एजेंट प्लिस्ट फ़ाइल बनाएं जो आपके खाते में लॉगिन करने पर हर बार चलेगी। यदि आपने पहले एक फ़ाइल नहीं बनाई है, तो एक तरीका यह है कि आप TextEdit के साथ कर सकते हैं। स्क्रिप्ट फ़ाइल को सादे पाठ में सहेजा जाना चाहिए, इसलिए यदि रिच टेक्स्ट फ़ॉर्मेटिंग के लिए TextEdit कॉल के लिए आपकी डिफ़ॉल्ट प्राथमिकताएँ, नए लॉन्च एजेंट plist फ़ाइल का उपयोग करने का प्रयास करने से पहले प्लेन टेक्स्ट को प्लेन टेक्स्ट में परिवर्तित करने के लिए एक प्रारूप बनाएं।
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.myaccountname.loginscript</string>
<key>ProgramArguments</key>
<array>
<string>/Users/myaccountname/forceQuitGamed</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
"ProgramArguments" के तहत सरणी में स्ट्रिंग पथ / को / आपके / शेल स्क्रिप्ट के लिए है। फ़ाइल को ~ / लाइब्रेरी / LaunchAgents / में सहेजें। इस उदाहरण में, मैंने plist फ़ाइल com.myaccountname.forceQuitGamed.plist नाम दिया है, इसलिए यह यहाँ पर पाया गया है
/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist
अब हर बार जब आप अपने खाते में प्रवेश करते हैं, तो इसे लोड किए जाने के कुछ ही सेकंड बाद बल दिया जाना चाहिए। (यदि आपको इसे लोड किए जाने के बाद जितनी जल्दी हो सके समाप्त करने की आवश्यकता है, @ Le-Sci’s विधि को देखें।) यह दृष्टिकोण सिस्टम इंटीग्रिटी प्रोटेक्शन को निष्क्रिय करने की आवश्यकता के बिना काम करता है।
आपको पहले csrutil disable
टर्मिनल में प्रवेश करना है जब रिकवरी मोड में, फिर पुनरारंभ करें परिवर्तन करें, फिर से पुनर्प्राप्ति मोड में पुनरारंभ करें और csrutil enable
पुनः आरंभ करें।
लेकिन मुझे नहीं पता कि संशोधित होने पर एल कैपिटन में कौन सी प्रक्रिया बूट होगी