OS X 10.11 El Capitan पर गेम सेंटर प्रक्रिया (gamed) को कैसे अक्षम करें?


10

ऐसा लगता है कि मैं LaunchAgents से plist फ़ाइल को संपादित नहीं कर सकता - भले ही मैं sudo हो, मुझे किसी भी विलोपन / परिवर्तन से रोका जाता है। क्या मुझे ऐसा करने के लिए एसआईपी को निष्क्रिय करना होगा?


क्या आपने इसे आजमाया और देखा कि क्या होता है?
टेटसुजिन

जवाबों:


16

LaunchAgent अक्षम करें (LaunchDaemons नहीं) और अपनी मशीन को रिबूट करें ( बिना sudo के):

$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

यदि आप इसे एक बिंदु पर फिर से सक्षम करना चाहते हैं, तो:

$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist

1
यह कहता है: /System/Library/LaunchAgents/com.apple.gamed.plist: मुझे 10.11.2 को निर्दिष्ट सेवा नहीं मिल रही है; सलाह के लिये धन्यवाद!
jrgd

मैंने इसे अपनी मशीन पर आजमाया और यह ठीक काम किया। वही ओएस (10.11.2)। क्या आपने मेरे उत्तर से कमांड को कॉपी और पेस्ट किया? संपादित करें: उपयोग नहीं करने के लिए सुनिश्चित करेंsudo
frdmn

हां मैंने किया; निर्देशिका के अंदर भी जाँच करें और प्लिस्ट फ़ाइल है ... क्या आपने अतीत में किसी भी तरह से एसआईपी / रूटलेस को हटा दिया था?
jrgd

नहीं, मैंने नहीं किया है: paste.frd.mn/loyon - क्या आप सेवा को देखते हैं launchctl list?
भाद्रपद

1
आपका स्वागत है!
frdmn

9

इस धागे के अनुसार आप कर सकते हैं:

defaults write com.apple.gamed Disabled -bool true

और डेमॉन उपयोग की वर्तमान स्थिति की जांच करने के लिए:

defaults read com.apple.gamed Disabled

2

एक समाधान यह है कि लॉगिन करने के बाद 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

2

समस्या यह है कि ऊपर दिया गया स्वीकृत उत्तर:

launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist

अब काम नहीं करता है। मैंने इसे -wध्वज का उपयोग करते हुए भी देखा है । किसी भी मामले में, हाल के अपडेट में, मुझे लगता है कि एल कैपिटन या योसेमाइट के आसपास, आपको इसके बजाय एक संदेश मिलता है

सिस्टम इंटीग्रिटी प्रोटेक्शन लगे रहते हुए ऑपरेशन की अनुमति नहीं है

सिस्टम इंटीग्रिटी प्रोटेक्शन को एसआईपी के संक्षिप्त नाम से भी जाना जाता है। इसे अक्षम करने के लिए आपको रिकवरी ओएस में बूट करना होगा और रन करना होगा csrutil disable

मैंने पिछले रिलीज में यह क्रम किया है और इसने launchctlकमांड के माध्यम से gamed को निष्क्रिय करने में सक्षम किया है ।

मुझे लगता है कि गैम अक्षम होने के बाद, कोई एसआईपी को फिर से सक्षम कर सकता है। शायद यह दोनों दुनिया के लिए सबसे अच्छा होगा, हालांकि यह सभी में एक कठिन प्रक्रिया है।


0

किस बारे में sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?


/ सिस्टम / लाइब्रेरी / लॉन्च डेमन / com.apple.gamed.plist: ऐसी कोई फ़ाइल या निर्देशिका --- मैं 10.11.2 पर हूं (सुझाव के लिए धन्यवाद)
jrgd

मेरा बुरा है, यह एक LaunchAgent है: sudo लॉन्चक्टल अनलोड / सिस्टम / लाइब्रेरी / लॉन्च \ एजेंट / com.apple.gamed.plist
PEM8000

धन्यवाद; निर्देशिका मेरी मशीन पर LaunchAgents है; सही रास्ते का उपयोग करने पर मुझे "निर्दिष्ट सेवा नहीं मिल पाई" जो मुझे दुखी करता है
jrgd

0

ओएस सिएरा सिस्टम सेटिंग्स, इंटरनेट अकाउंट्स पर जाएं और सूची के बाईं ओर गेम सेंटर (माइनस के साथ) को हटा दें।


यह सिर्फ गेम सेंटर खाते को हटाता है और gamed प्रक्रिया को अक्षम नहीं करता है। इसके अलावा, यह सवाल एल कैपिटन के बारे में है न कि सिएरा के बारे में। कृपया देखें जवाब कैसे कैसे सवालों का अच्छा जवाब प्रदान की युक्तियों के लिए। - समीक्षा से
fsb

0

इससे सुरक्षा के दृष्टिकोण से कोई फर्क नहीं पड़ता है क्योंकि यह एसआईपी से पहले काम करने वाले बिलकुल ऐसे ही सिस्टम को वापस ला देता है, और लगभग सभी यूनिक्स सिस्टम अभी भी काम करते हैं। SIP का मूल्य सबसे अधिक बहस योग्य है। यह प्रश्न को संबोधित करता है क्योंकि लॉन्च किए गए कमांड फ़ाइल को उतारने के लिए केवल लॉन्चक्टल कमांड का उपयोग करने का एकमात्र तरीका एसआईपी को बूट करना है, बूट फाइल को अनलोड करना है, और फिर, यदि वांछित है, तो एसएनआईपी को फिर से जोड़ना।


0

एक और विकल्प जो 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 विधि को देखें।) यह दृष्टिकोण सिस्टम इंटीग्रिटी प्रोटेक्शन को निष्क्रिय करने की आवश्यकता के बिना काम करता है।


-4

आपको पहले csrutil disableटर्मिनल में प्रवेश करना है जब रिकवरी मोड में, फिर पुनरारंभ करें परिवर्तन करें, फिर से पुनर्प्राप्ति मोड में पुनरारंभ करें और csrutil enableपुनः आरंभ करें।

लेकिन मुझे नहीं पता कि संशोधित होने पर एल कैपिटन में कौन सी प्रक्रिया बूट होगी


यह रूट लॉगिन सक्षम करता है। इससे क्या लेना-देना है?
1

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