如何在OS X 10.11 El Capitan上禁用Game Center进程(游戏)?


10

看来我无法从LaunchAgents编辑plist文件-即使我sudo,也无法进行任何删除/更改。我是否必须禁用SIP才能执行此操作?


您是否尝试过,看看会发生什么?
Tetsujin

Answers:


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

我只是在我的机器上尝试过,并且效果很好。相同的操作系统(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或优胜美地,您会收到一条消息

启用系统完整性保护时,不允许进行操作

系统完整性保护也被缩写为SIP。要禁用它,您需要启动到Recovery OS并运行csrutil disable

我已经在以前的版本中完成了此序列,并且确实可以通过launchctl命令禁用游戏功能。

我想在禁用gamed之后,可以重新启用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卸载/ System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000

谢谢; 该目录是我计算机上的LaunchAgents;使用正确的路径后,我得到了“找不到指定的服务”,这让我感到很难过
jrgd 16'Jan

0

在OS Sierra上,转到“系统设置”,“ Internet帐户”,然后删除列表中左侧的“游戏中心”(减号)。


这只会删除Game Center帐户,不会禁用游戏过程。另外,这个问题是关于El Capitan而不是Sierra。请参阅“ 如何回答”以获取有关如何为问题提供良好答案的提示。-评论
-fsb

0

从安全的角度来看,这几乎没有什么区别,因为它只是将系统还原到SIP之前可以正常工作的状态,以及几乎所有Unix系统仍然可以工作的程度。SIP的价值充其量是可以争论的。它解决了这个问题,因为使用Launchctl命令卸载游戏的plist文件的唯一方法是首先禁用SIP,启动,卸载plist文件,然后(如果需要)重新启用SIP。


0

适用于10.11.6的另一个选项是@ Le-Sci建议的方法的变体。创建一个shell脚本来禁用游戏进程:

#!/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的默认首选项要求使用RTF格式,则在尝试使用新的启动代理plist文件之前,请执行Format> Make Plain Text命令将其转换为纯文本格式。

<?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”下的字符串是路径/到/您的/ 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中的启动


这将启用root登录。它与游戏机有什么关系?
Unname_1 2016年

从安全的角度来看,这确实是一个非常糟糕的主意,并且无法解决问题。
ruief
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.