OS X 10.11 El CapitanでGame Centerプロセス(ゲーム)を無効にする方法は?


10

LaunchAgentsからplistファイルを編集できないようです— sudoを実行しても、削除/変更はできません。これを行うには、必ずしもSIPを無効にする必要がありますか?


やってみて何が起こるか見てみましたか?
鉄人

回答:


16

LaunchDaemonsではなくLaunchAgentを無効にし、(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 '13年

私は自分のマシンで試してみましたが、うまくいきました。同じOS(10.11.2)。私の回答からコマンドをコピーして貼り付けましたか?編集:使用しないことを確認してくださいsudo
frdmn '13年

うん、私はやった。ディレクトリ内も確認してください。plistファイルがあります。過去にSIP / rootlessを削除したことがありますか?
jrgd

いいえ、私はしていません:paste.frd.mn/loyon-サービスは表示されlaunchctl listますか?
frdmn '13年

1
いいえ、どいたしまして!
frdmn '13年

9

このスレッドによると次のことができます。

defaults write com.apple.gamed Disabled -bool true

デーモンの現在の状態を確認するには、次のコマンドを使用します。

defaults read com.apple.gamed Disabled

2

1つの解決策は、ログイン後にgamedサービスを停止するbashスクリプトを作成することです。OS XでAutomatorを使用してbashスクリプトを作成し、それをログイン項目としてOS Xアカウントに追加します。次回ログインすると、スクリプトを実行するためのプロンプトが表示されます。通常、ゲームが帰宅しているというリトルスニッチからのアラートが表示されるまで待ち、[続行]をクリックしてスクリプトを実行します。これは完璧ではなく、OS Xにログインした直後に実行すると問題が発生する可能性があります。サービスを無効にするソリューションは避けたいです。

これが私が使用する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の周りだと思います。代わりにメッセージが表示されます

システム整合性保護が作動している間は操作できません

System Integrity Protectionは、頭字語SIPでも知られています。これを無効にするには、リカバリ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:No such file or directory --- I on on 10.11.2(thanks for the提案)
jrgd

私の悪い点、それはLaunchAgentです:sudo launchctl unload / System / Library / Launch \ Agents / com.apple.gamed.plist
PEM8000

ありがとう。ディレクトリは私のマシンのLaunchAgentsです。正しいパスを使用すると、「指定されたサービスが見つかりませんでした」という
メッセージが表示され、

0

OS Sierraの場合、システム設定、インターネットアカウントに移動し、リスト(左側)のゲームセンターを(マイナスで)削除します。


これは、Game Centerアカウントを削除するだけで、ゲームプロセスを無効にしません。また、この質問はシエラではなくエルキャピタンについてです。質問に対する適切な回答を提供する方法のヒントについては、回答方法を参照してください。-レビューから
fsb

0

これは、システムをSIPの前に機能した状態に戻し、ほとんどすべてのUnixシステムがまだ機能しているため、セキュリティの観点からはほとんど違いはありません。SIPの価値はよくても議論の余地があります。Launchctlコマンドを使用してgamed plistファイルをアンロードする唯一の方法は、最初にSIPを無効にしてから起動し、plistファイルをアンロードしてから、必要に応じてSIPを再度有効にすることです。


0

10.11.6で機能する別のオプションは、@ Le-Sciによって提案された方法のバリエーションです。gamedプロセスを無効にするシェルスクリプトを作成します。

#!/bin/bash
sleep 30 && kill -9 "$(pgrep gamed)"

ここでsleepコマンドは、gamedを終了するプロセスを開始する前に30秒待機して、システムにgamedを終了する前にgamedをロードするのに十分な時間を与えるようにスクリプトに指示します。必要に応じて待機時間を調整できます。「kill -9」コマンドは要求したプロセスを強制終了しますが、プロセス名ではなくプロセスID番号のみを受け入れるため、「pgrep」を使用してプロセスIDを検索します。スクリプトを保存した場所をメモします(この例では、/ Users / myaccountname /に「forceQuitGamed」として保存します)。

スクリプトの実行権限を付与します。

sudo chmod +x ~/forceQuitGamed

アカウントにログインするたびに実行される起動エージェントplistファイルを作成します。以前にplistファイルを作成したことがない場合、これを行う1つの方法は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

これで、アカウントにログインするたびに、gamedはロードされてから数秒後に強制終了するはずです。(ロード後、できるだけ早く終了する必要がある場合は、@ Le-Sciのメソッドを参照してください。)このアプローチは、システム整合性保護を無効にする必要なく機能します。


-4

最初csrutil disableにリカバリモードでターミナルに入る必要があります。次に、再起動して変更を加え、もう一度リカバリモードcsrutil enableで再起動してから、再起動します。

しかし、変更されたときにどのプロセスがEl Capitanのブートを危険にさらすかわかりません


これにより、rootログインが有効になります。gamedとは何が関係していますか?
名前なし_1 '06 / 06/23

これはセキュリティの観点からは本当に悪い考えであり、問​​題を解決しません。
ruief 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.