답변:
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 스크립트를 작성하는 것입니다. OS X에서 Automator를 사용하여 bash 스크립트를 작성한 다음이를 OS X 계정에 로그인 항목으로 추가하십시오. 다음에 로그인하면 스크립트를 실행하라는 메시지가 나타납니다. 일반적으로 Little Snitch에서 게임을하고 있다는 경고가 표시 될 때까지 기다렸다가 '계속'을 클릭하여 스크립트를 실행합니다. 이것은 완벽하지 않았으며 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로도 알려져 있습니다. 이를 비활성화하려면 복구 OS로 부팅하고를 실행해야 csrutil disable
합니다.
이전 릴리스에서이 순서를 수행했으며 launchctl
명령을 통해 게임을 비활성화 할 수있었습니다 .
게임이 비활성화 된 후 SIP를 다시 활성화 할 수 있다고 가정합니다. 아마도 지루한 과정이지만, 그것은 두 세계에서 가장 좋을 것입니다.
무엇에 대해 sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist
?
10.11.6에서 작동하는 또 다른 옵션은 @ Le-Sci가 제안한 방법의 변형입니다. 게임 프로세스를 비활성화하는 쉘 스크립트를 만듭니다.
#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"
여기서 sleep 명령은 게임 종료 프로세스를 시작하기 전에 30 초 동안 기다렸다가 게임을 종료하기 전에 시스템에 게임을로드 할 시간을 충분히 주도록 스크립트에 지시합니다. 필요에 따라 대기 시간을 조정할 수 있습니다. "kill -9"명령은 요청한 프로세스를 강제 종료하지만 프로세스 이름이 아닌 프로세스 ID 번호 만 허용하므로 "pgrep"은 프로세스 ID를 찾는 데 사용됩니다. 스크립트를 저장하는 위치를 기록해 두십시오 (이 예에서는 / Users / myaccountname /에 "forceQuitGamed"로 저장합니다).
스크립트 실행 권한을 부여하십시오.
sudo chmod +x ~/forceQuitGamed
계정에 로그인 할 때마다 실행될 시작 에이전트 plist 파일을 작성하십시오. 이전에 plist 파일을 작성하지 않은 경우이를 수행 할 수있는 한 가지 방법은 TextEdit을 사용하는 것입니다. 스크립트 파일은 일반 텍스트로 저장해야하므로 TextEdit의 기본 환경 설정에서 서식있는 텍스트 형식을 요구하는 경우 새 실행 에이전트 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"아래 배열의 문자열은 path / to / your / shell 스크립트입니다. ~ / Library / LaunchAgents /에 파일을 저장하십시오. 이 예제에서는 plist 파일의 이름을 com.myaccountname.forceQuitGamed.plist로 지정했습니다.
/Users/myaccountname/Library/LaunchAgents/com.myaccountname.forceQuitGamed.plist
이제 계정에 로그인 할 때마다 게임이로드 된 후 몇 초 후에 강제 종료됩니다. (로드 된 후 가능한 빨리 종료해야하는 경우 @ Le-Sci의 방법을 참조하십시오.)이 방법은 시스템 무결성 보호를 비활성화 할 필요없이 작동합니다.