Відповіді:
Вимкніть LaunchAgent (не LaunchDaemons) і перезавантажте машину ( без судо):
$ 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 про те, що ігровий телефон телефонує додому, потім натискаю "Продовжити", щоб запустити сценарій. Це не було вдосконалено, і ви можете зіткнутися з проблемами, якщо запустити його відразу після входу в ОС 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
прапор. У будь-якому випадку, в останніх оновленнях, я думаю, що навколо Ель-Капітана чи Йосеміті, ви натомість отримуєте повідомлення
Операція заборонена, поки захищена цілісність системи
Захист цілісності системи також відомий за акронімом SIP. Щоб його відключити, потрібно завантажитися в ОС відновлення та запустити csrutil disable
.
Я робив цю послідовність у попередніх випусках, і це призвело до відключення гри за допомогою launchctl
команди.
Я припускаю, що після відключення гри можна буде знову включити SIP. Можливо, це було б найкращим з обох світів, хоча це загалом нудний процес.
про що sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
на ОС Sierra перейдіть до системних налаштувань, облікових записів Інтернету та видаліть (з мінусом) Ігровий центр у списку (зліва).
Це не має особливих відмінностей з точки зору безпеки, оскільки воно просто повертає систему до того, як вона працювала до SIP, і як саме працюють всі системи Unix. Значення SIP в кращому випадку є дискусійним. Він вирішує це питання, оскільки єдиний спосіб використання команди Launchctl для вивантаження ігрового файлу плістів - це спочатку відключити SIP, завантажувати, вивантажувати файл плісту, а потім, за бажанням, повторно включати SIP.
Інший варіант, який працює 10.11.6, - це варіація методу, запропонованого @ Le-Sci. Створіть скрипт оболонки, який відключить ігровий процес:
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
Команда сну тут наказує скрипту почекати 30 секунд перед запуском процесу виходу з ігор, щоб дати системі достатньо часу для завантаження гри, перш ніж намагатися її припинити; ви можете скоригувати кількість часу на очікування, якщо це необхідно. Команда force "kill -9" закриває запит на процес, але він приймає лише номер ідентифікатора процесу, а не ім'я процесу, тому "pgrep" використовується для пошуку ідентифікатора процесу. Запишіть, де ви зберігаєте скрипт (у цьому прикладі я збережу його як "forceQuitGamed" в / Users / myaccountname /).
Надати дозвіл на виконання сценарію:
sudo chmod +x ~/forceQuitGamed
Створіть файл запуску агента запуску, який запускатиметься кожного разу при вході в обліковий запис. Якщо ви ще не створили файл-пліст, один із способів зробити це - TextEdit. Файл сценарію повинен бути збережений у простому тексті, тому якщо ваші налаштування за замовчуванням для виклику TextEdit для форматування розширеного тексту виконайте команду Формат> Зробити звичайний текст для перетворення в звичайний текст перед тим, як спробувати використовувати новий файл плісту агента запуску.
<?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.) Цей підхід працює без необхідності відключати захист цілісності системи.
Спочатку потрібно ввести csrutil disable
термінал у режимі відновлення, потім перезапустити внести зміни, перезапустити знову в режимі відновлення і зробити csrutil enable
, перезапустити.
Але я не знаю, які процеси, коли модифіковані, будуть компрометувати завантаження в El Capitan