Antworten:
Deaktivieren Sie den LaunchAgent (nicht LaunchDaemons) und starten Sie Ihren Computer neu ( ohne sudo):
$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
Falls Sie es an einer Stelle wieder aktivieren möchten:
$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
sudo
launchctl list
?
Eine Lösung besteht darin, ein Bash-Skript zu erstellen, um den Spieledienst nach der Anmeldung zu stoppen. Verwenden Sie Automator in OS X, um ein Bash-Skript zu erstellen, und fügen Sie es dann als Anmeldeelement zu Ihrem OS X-Konto hinzu. Wenn Sie sich das nächste Mal anmelden, sollten Sie aufgefordert werden, das Skript auszuführen. Normalerweise warte ich, bis ich eine Warnung von Little Snitch sehe, dass das Spiel nach Hause telefoniert, und klicke dann auf "Weiter", um das Skript auszuführen. Dies wurde nicht perfektioniert, und es kann zu Problemen kommen, wenn Sie es unmittelbar nach der Anmeldung bei OS X ausführen. Ich halte mich lieber von den Lösungen fern, die den Dienst deaktivieren, da diese das Deaktivieren / Überschreiben von SIP erfordern, von dem ich abraten möchte.
Hier ist das Bash-Skript, das ich verwende. Vorschläge zur Verbesserung sind willkommen.
#!/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
Das Problem ist, dass die oben angegebene akzeptierte Antwort:
launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
funktioniert nicht mehr. Ich habe es auch mit der -w
Flagge gesehen. In den letzten Updates denke ich jedenfalls, dass Sie bei El Capitan oder Yosemite stattdessen eine Nachricht erhalten
Betrieb nicht zulässig, solange der Systemintegritätsschutz aktiviert ist
Der Systemintegritätsschutz ist auch unter dem Akronym SIP bekannt. Um es zu deaktivieren, müssen Sie das Wiederherstellungsbetriebssystem starten und ausführen csrutil disable
.
Ich habe diese Sequenz in früheren Versionen durchgeführt und sie hat dazu geführt, dass das Spiel über den launchctl
Befehl deaktiviert werden konnte .
Ich nehme an, dass man SIP nach dem Deaktivieren des Spiels wieder aktivieren kann. Vielleicht wäre das das Beste aus beiden Welten, obwohl es insgesamt ein langwieriger Prozess ist.
was ist mit sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
Gehen Sie unter OS Sierra zu Systemeinstellungen, Internetkonten und löschen Sie (mit dem Minus) das Game Center in der Liste (linke Seite).
Unter Sicherheitsgesichtspunkten macht dies kaum einen Unterschied, da ein System einfach auf genau das zurückgesetzt wird, was vor SIP funktioniert hat und wie fast alle Unix-Systeme noch funktionieren. Der Wert von SIP ist bestenfalls umstritten. Es wird die Frage beantwortet, da die einzige Möglichkeit, den Befehl Launchctl zum Entladen der Gamed-Plist-Datei zu verwenden, darin besteht, zuerst SIP zu deaktivieren, zu starten, die Plist-Datei zu entladen und dann, falls gewünscht, SIP erneut zu aktivieren.
Eine weitere Option, die unter 10.11.6 funktioniert, ist eine Variation der von @ Le-Sci vorgeschlagenen Methode. Erstellen Sie ein Shell-Skript, das den Spielprozess deaktiviert:
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
Der Befehl sleep hier weist das Skript an, 30 Sekunden zu warten, bevor mit dem Beenden des Spiels begonnen wird, damit das System genügend Zeit hat, um das Spiel zu laden, bevor versucht wird, es zu beenden. Sie können die Wartezeit nach Bedarf anpassen. Der Befehl "kill -9" beendet den von Ihnen angeforderten Prozess, akzeptiert jedoch nur eine Prozess-ID-Nummer, keinen Prozessnamen. Daher wird "pgrep" zum Nachschlagen der Prozess-ID verwendet. Notieren Sie sich, wo Sie das Skript speichern (in diesem Beispiel speichere ich es als "forceQuitGamed" in / Users / myaccountname /).
Geben Sie die Berechtigung zur Skriptausführung:
sudo chmod +x ~/forceQuitGamed
Erstellen Sie eine Plist-Datei für den Startagenten, die jedes Mal ausgeführt wird, wenn Sie sich bei Ihrem Konto anmelden. Wenn Sie zuvor noch keine Plist-Datei erstellt haben, können Sie dies unter anderem mit TextEdit tun. Die Skriptdatei muss im Nur-Text-Format gespeichert werden. Wenn Ihre Standardeinstellungen für TextEdit die Rich-Text-Formatierung erfordern, führen Sie den Befehl Format> Nur-Text erstellen aus, um sie in Nur-Text zu konvertieren, bevor Sie versuchen, die neue Plist-Datei des Startagenten zu verwenden.
<?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>
Die Zeichenfolge im Array unter "ProgramArguments" ist der Pfad / zu / Ihrem / Shell-Skript. Speichern Sie die Datei unter ~ / Library / LaunchAgents /. In diesem Beispiel habe ich die plist-Datei com.myaccountname.forceQuitGamed.plist benannt, sodass sie unter gefunden wird
/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist
Jedes Mal, wenn Sie sich bei Ihrem Konto anmelden, sollte das Spiel nur wenige Sekunden nach dem Laden zwangsweise beendet werden. (Wenn es nach dem Laden so schnell wie möglich beendet werden muss, sehen Sie sich die Methode von @ Le-Sci an.) Dieser Ansatz funktioniert, ohne dass der Systemintegritätsschutz deaktiviert werden muss.
Sie müssen csrutil disable
im Wiederherstellungsmodus zuerst in Terminal eintreten , dann Änderungen neu starten, Änderungen vornehmen, im Wiederherstellungsmodus erneut starten und csrutil enable
neu starten.
Ich weiß jedoch nicht, welche Prozesse bei einer Änderung den Start in El Capitan beeinträchtigen