Risposte:
Disabilita LaunchAgent (non LaunchDaemons) e riavvia il computer ( senza sudo):
$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
Nel caso in cui si desideri riattivarlo ad un certo punto:
$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
sudo
launchctl list
?
Una soluzione è quella di creare uno script bash per interrompere il servizio di gioco dopo aver effettuato l'accesso. Utilizza Automator in OS X per creare uno script bash, quindi aggiungilo come elemento di accesso al tuo account OS X. Al prossimo accesso dovresti ricevere un prompt per eseguire lo script. Normalmente aspetto fino a quando non vedo un avviso da Little Snitch che Gaming sta telefonando a casa, quindi faccio clic su "Continua" per eseguire lo script. Questo non è stato perfezionato e potresti riscontrare problemi se lo esegui immediatamente dopo aver effettuato l'accesso a OS X. Preferisco stare lontano dalle soluzioni che disabilitano il servizio in quanto richiedono disabilitazione / sostituzione di SIP che sconsiglio.
Ecco lo script bash che uso. Qualsiasi suggerimento su come migliorarlo è il benvenuto.
#!/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
Il problema è che la risposta accettata fornita sopra:
launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
non lavora più. L'ho visto anche usando la -w
bandiera. In ogni caso, negli ultimi aggiornamenti, penso a El Capitan o Yosemite, invece ricevi un messaggio
Operazione non consentita mentre è attiva la Protezione integrità del sistema
System Integrity Protection è anche noto con l'acronimo SIP. Per disabilitarlo è necessario avviare il sistema operativo di ripristino ed eseguire csrutil disable
.
Ho eseguito questa sequenza nelle versioni precedenti e mi ha permesso di disabilitare il gioco tramite il launchctl
comando.
Suppongo che dopo che il gioco sia disabilitato, si potrebbe riattivare SIP. Forse sarebbe il migliore dei due mondi, sebbene sia un processo noioso tutto sommato.
che dire sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
su OS Sierra vai su Impostazioni di sistema, Account Internet ed elimina (con il meno) il Game Center nell'elenco (lato sinistro).
Ciò fa poca o nessuna differenza dal punto di vista della sicurezza in quanto ripristina semplicemente un sistema esattamente come funzionava prima di SIP, ed esattamente come funzionano ancora quasi tutti i sistemi Unix. Il valore di SIP è discutibile nella migliore delle ipotesi. Risolve la domanda perché l'unico modo per utilizzare il comando Launchctl per scaricare il file plist di gioco è prima disabilitare SIP, avviare, scaricare il file plist e quindi, se lo si desidera, riabilitare SIP.
Un'altra opzione che funziona su 10.11.6 è una variazione del metodo suggerito da @ Le-Sci. Crea uno script shell che disabilita il processo di gioco:
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
Il comando sleep qui dice allo script di attendere 30 secondi prima di iniziare il processo di chiusura di Gaming, per dare al sistema abbastanza tempo per aver caricato Gaming prima di provare a terminarlo; puoi regolare il tempo di attesa se necessario. Il comando "kill -9" chiude forzatamente il processo richiesto, ma accetta solo un numero ID processo, non un nome processo, quindi "pgrep" viene utilizzato per cercare l'id processo. Prendi nota di dove salvi lo script (per questo esempio, lo salverò come "forceQuitGamed" in / Users / mioaccountname /).
Autorizza l'esecuzione dello script:
sudo chmod +x ~/forceQuitGamed
Crea un file plist dell'agente di avvio che verrà eseguito ogni volta che accedi al tuo account. Se prima non hai creato un file plist, un modo per farlo è con TextEdit. Il file di script deve essere salvato in testo normale, quindi se le preferenze predefinite per TextEdit richiedono la formattazione Rich Text, eseguire un comando Formato> Crea testo normale per convertire in testo semplice prima di provare a utilizzare il nuovo file plist dell'agente di avvio.
<?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>
La stringa nella matrice in "ProgramArguments" è lo script path / to / your / shell. Salvare il file in ~ / Library / LaunchAgents /. In questo esempio, ho chiamato il file plist com.myaccountname.forceQuitGamed.plist, quindi è disponibile all'indirizzo
/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist
Ora ogni volta che accedi al tuo account, il gioco dovrebbe essere forzatamente chiuso solo pochi secondi dopo che è stato caricato. (Se è necessario che venga terminato il più presto possibile dopo il caricamento, consultare il metodo @ Le-Sci.) Questo approccio funziona senza la necessità di disabilitare la protezione dell'integrità del sistema.
Devi prima entrare csrutil disable
in Terminale quando sei in Modalità di recupero, quindi riavviare apportare modifiche, riavviare di nuovo in Modalità di ripristino ed eseguire csrutil enable
, riavviare.
Ma non so quali processi una volta modificati comprometteranno l'avvio in El Capitan