Ответы:
Отключите LaunchAgent (не LaunchDaemons) и перезагрузите компьютер ( без sudo):
$ launchctl unload /System/Library/LaunchAgents/com.apple.gamed.plist
Если вы хотите включить его снова в одной точке:
$ launchctl load /System/Library/LaunchAgents/com.apple.gamed.plist
sudo
launchctl list
?
Одним из решений является создание bash-скрипта, который останавливает игровой сервис после входа в систему. Используйте Automator в OS X для создания сценария bash, а затем добавьте его в качестве элемента входа в свою учетную запись OS X. При следующем входе в систему вы получите приглашение выполнить скрипт. Обычно я жду, пока не увижу предупреждение от Little Snitch о том, что gamed звонит домой, затем нажимаю «Продолжить», чтобы запустить скрипт. Это не было усовершенствовано, и вы можете столкнуться с проблемами, если вы запустите его сразу после входа в OS X. Я предпочитаю держаться подальше от решений, которые отключают службу, поскольку те требуют отключения / переопределения SIP, против которых я советую.
Вот скрипт bash, который я использую. Любые предложения по его улучшению приветствуются.
#!/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
флаг. В любом случае, в последних обновлениях, я думаю, что вокруг El Capitan или Yosemite, вы вместо этого получите сообщение
Операция не разрешена, когда включена защита целостности системы
Защита целостности системы также известна под аббревиатурой SIP. Чтобы отключить его, вам нужно загрузиться в Recovery OS и запустить csrutil disable
.
Я делал эту последовательность в предыдущих выпусках, и это привело к возможности отключить игру через launchctl
команду.
Я полагаю, что после отключения gamed можно было бы снова включить SIP. Может быть, это будет лучшее из обоих миров, хотя в целом это утомительный процесс.
о чем sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
на ОС Sierra зайдите в Системные настройки, Учетные записи в Интернете и удалите (со знаком минус) Game Center из списка (слева).
Это мало что меняет с точки зрения безопасности, поскольку просто возвращает систему к тому состоянию, в котором она работала до SIP, и к тому, как почти все системы Unix все еще работают. Значение SIP является в лучшем случае спорны. Он отвечает на этот вопрос, потому что единственный способ использовать команду Launchctl для выгрузки файла PLM Gamed - это сначала отключить SIP, загрузиться, выгрузить файл PLIST, а затем, при желании, снова включить SIP.
Другой вариант, работающий на 10.11.6, - это вариант метода, предложенного @ Le-Sci. Создайте скрипт оболочки, который отключает игровой процесс:
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
Здесь команда sleep говорит сценарию подождать 30 секунд перед началом процесса выхода из gamed, чтобы дать системе достаточно времени для загрузки gamed, прежде чем пытаться завершить его; Вы можете настроить количество времени ожидания, если это необходимо. Команда «kill -9» принудительно завершает запрошенный вами процесс, но принимает только номер идентификатора процесса, а не имя процесса, поэтому «pgrep» используется для поиска идентификатора процесса. Запишите, где вы сохраняете скрипт (для этого примера я сохраню его как «forceQuitGamed» в / Users / myaccountname /).
Дайте разрешение на выполнение скрипта:
sudo chmod +x ~/forceQuitGamed
Создайте файл plist агента запуска, который будет запускаться при каждом входе в учетную запись. Если вы ранее не создавали файл plist, вы можете сделать это с помощью TextEdit. Файл сценария должен быть сохранен в виде простого текста, поэтому, если настройки по умолчанию для TextEdit требуют форматирования Rich Text, выполните команду «Формат»> «Создать обычный текст» для преобразования в обычный текст, прежде чем пытаться использовать новый 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» - это путь к сценарию / к / вашему / оболочке. Сохраните файл в ~ / Library / LaunchAgents /. В этом примере я назвал файл plist com.myaccountname.forceQuitGamed.plist, поэтому он находится по адресу
/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist
Теперь при каждом входе в свою учетную запись gamed следует принудительно завершать через несколько секунд после загрузки. (Если вам нужно, чтобы он был завершен как можно скорее после его загрузки, посмотрите на метод @ Le-Sci.) Этот подход работает без необходимости отключения защиты целостности системы.
Вы должны сначала войти csrutil disable
в Терминал в режиме восстановления, затем перезапустить внести изменения, перезапустить снова в режиме восстановления и сделать csrutil enable
, перезапустить.
Но я не знаю, какие процессы при модификации могут поставить под угрозу загрузку в El Capitan