Як відключити процес Game Center (ігровий) на OS X 10.11 El Capitan?


10

Здається, я не можу редагувати пліст-файл із LaunchAgents - навіть якщо я судо, мені не вдасться видалити / змінити. Чи потрібно обов’язково відключити SIP для цього?


Ви спробували це і побачите, що відбувається?
Тецуджин

Відповіді:


16

Вимкніть LaunchAgent (не LaunchDaemons) і перезавантажте машину ( без судо):

$ 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

так, я зробив; Перевірте також всередині каталогу і чи є файл плісту… Ви видаляли SIP / без коріння випадково в минулому?
jrgd

Ні, я не: paste.frd.mn/loyon - Ви бачите службу в launchctl list?
frdmn

1
Ви дуже раді!
frdmn

9

Відповідно до цієї теми ви можете:

defaults write com.apple.gamed Disabled -bool true

А для перевірки поточного стану демона використовуйте:

defaults read com.apple.gamed Disabled

2

Одне рішення - створити сценарій 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

2

Проблема полягає в тому, що прийнята відповідь, наведена вище:

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

більше не працює. Я також бачив це, використовуючи -wпрапор. У будь-якому випадку, в останніх оновленнях, я думаю, що навколо Ель-Капітана чи Йосеміті, ви натомість отримуєте повідомлення

Операція заборонена, поки захищена цілісність системи

Захист цілісності системи також відомий за акронімом SIP. Щоб його відключити, потрібно завантажитися в ОС відновлення та запустити csrutil disable.

Я робив цю послідовність у попередніх випусках, і це призвело до відключення гри за допомогою launchctlкоманди.

Я припускаю, що після відключення гри можна буде знову включити SIP. Можливо, це було б найкращим з обох світів, хоча це загалом нудний процес.


0

про що sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?


/ Система / Бібліотека / Запуск демонів / com.apple.gamed.plist: Немає такого файлу чи каталогу --- я 10.11.2 (дякую за пропозицію)
jrgd

мені погано, це LaunchAgent: sudo launchctl unload / Система / Бібліотека / Запуск \ Агенти / com.apple.gamed.plist
PEM8000

Дякую; каталог - LaunchAgents на моїй машині; використовуючи правильний шлях, я отримав "Не вдалося знайти вказану послугу", що мене сумує
jrgd

0

на ОС Sierra перейдіть до системних налаштувань, облікових записів Інтернету та видаліть (з мінусом) Ігровий центр у списку (зліва).


Це просто видаляє обліковий запис Game Center і не відключає ігровий процес. Також це питання стосується Ель-Капітана, а не Сьєрри. Дивіться, як відповісти, щоб отримати поради щодо того, як дати хороші відповіді на запитання - З огляду
fsb

0

Це не має особливих відмінностей з точки зору безпеки, оскільки воно просто повертає систему до того, як вона працювала до SIP, і як саме працюють всі системи Unix. Значення SIP в кращому випадку є дискусійним. Він вирішує це питання, оскільки єдиний спосіб використання команди Launchctl для вивантаження ігрового файлу плістів - це спочатку відключити SIP, завантажувати, вивантажувати файл плісту, а потім, за бажанням, повторно включати SIP.


0

Інший варіант, який працює 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.) Цей підхід працює без необхідності відключати захист цілісності системи.


-4

Спочатку потрібно ввести csrutil disableтермінал у режимі відновлення, потім перезапустити внести зміни, перезапустити знову в режимі відновлення і зробити csrutil enable, перезапустити.

Але я не знаю, які процеси, коли модифіковані, будуть компрометувати завантаження в El Capitan


Це дозволяє ввійти в систему. Що це стосується ігор?
Без імені_1

Це дійсно погана ідея з точки зору безпеки, і це не стосується питання.
ruief
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.