OS X 10.11 El Capitan에서 Game Center 프로세스를 비활성화하는 방법은 무엇입니까?


10

LaunchAgents에서 plist 파일을 편집 할 수없는 것 같습니다. sudo라도 삭제 / 변경이 방지됩니다. 이를 위해서는 반드시 SIP를 비활성화해야합니까?


당신은 그것을 시도하고 어떻게되는지 보셨습니까?
Tetsujin

답변:


16

LaunchAgent (LaunchDaemons 아님)를 비활성화하고 시스템 sudo 없이 재부팅하십시오 .

$ 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

방금 내 컴퓨터에서 시도했지만 정상적으로 작동했습니다. 동일한 OS (10.11.2) 내 답변에서 명령을 복사하여 붙여 넣었습니까? 편집 : 사용 하지 마십시오sudo
frdmn

그렇습니다. 디렉토리 내부도 확인하십시오. plist 파일이 있습니다… 과거에 우연히 SIP / rootless를 제거 했습니까?
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 스크립트를 작성하는 것입니다. 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

2

문제는 위에 주어진 대답이 다음과 같습니다.

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

더 이상 작동하지 않습니다. 나는 또한 -w깃발을 사용하여 그것을 보았다 . 어쨌든 최근 업데이트에서는 El Capitan 또는 Yosemite를 중심으로 메시지가 표시됩니다.

시스템 무결성 보호가 작동하는 동안 작업이 허용되지 않습니다

시스템 무결성 보호는 약어 SIP로도 알려져 있습니다. 이를 비활성화하려면 복구 OS로 부팅하고를 실행해야 csrutil disable합니다.

이전 릴리스에서이 순서를 수행했으며 launchctl명령을 통해 게임을 비활성화 할 수있었습니다 .

게임이 비활성화 된 후 SIP를 다시 활성화 할 수 있다고 가정합니다. 아마도 지루한 과정이지만, 그것은 두 세계에서 가장 좋을 것입니다.


0

무엇에 대해 sudo launchctl unload /System/Library/Launch\ Daemons/com.apple.gamed.plist?


/ System / Library / Launch Daemons / com.apple.gamed.plist : 해당 파일 또는 디렉토리가 없습니다 --- 10.11.2에 있습니다 (제안 해 주셔서 감사합니다)
jrgd

내 나쁜, 그것은 LaunchAgent입니다 : sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000

감사; 디렉토리는 내 컴퓨터의 LaunchAgents입니다. 올바른 경로를 사용에 내가 나를 슬프게 만드는 "지정 찾을 수 없습니다 서비스"있어요
jrgd

0

OS Sierra에서 시스템 설정, 인터넷 계정으로 이동하여 목록에서 게임 센터를 삭제합니다 (왼쪽).


Game Center 계정 만 삭제하고 게임 프로세스를 비활성화하지 않습니다. 또한이 질문은 Sierra가 아닌 El Capitan에 관한 것입니다. 질문에 대한 올바른 답변을 제공하는 방법에 대한 팁은 답변 방법을 참조하십시오 . -리뷰에서
fsb

0

이는 SIP 이전에 시스템을 정확히 작동했던 시스템으로 되돌릴뿐 아니라 거의 모든 Unix 시스템이 여전히 작동하는 방식으로 시스템을 되돌려 놓기 때문에 보안 관점과 크게 다르지 않습니다. SIP의 가치는 논쟁의 여지가 있습니다. Launchctl 명령을 사용하여 게임 된 plist 파일을 언로드하는 유일한 방법은 먼저 SIP를 비활성화하고 부팅하고 plist 파일을 언로드 한 다음 원하는 경우 SIP를 다시 활성화하는 것이므로이 문제를 해결합니다.


0

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의 방법을 참조하십시오.)이 방법은 시스템 무결성 보호를 비활성화 할 필요없이 작동합니다.


-4

csrutil disable복구 모드에서 터미널 에 먼저 들어가서 변경을 다시 시작하고 복구 모드에서 다시 시작한 다음 다시 시작해야합니다 csrutil enable.

그러나 El Capitan에서 어떤 프로세스를 수정하면 부팅이 손상되는지 알 수 없습니다.


루트 로그인이 가능합니다. 게임과는 어떤 관계가 있습니까?
Unnamed_1

이것은 보안 관점에서 볼 때 정말 나쁜 아이디어이며 질문을 다루지 않습니다.
ruief
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.