launchd からエージェントを削除する
目次:
大多数の Mac ユーザーは、launchd と launchctl を手動で微調整する必要はありませんが、Mac OS X でアプリをアンインストールまたは使用を停止すると、サービス エージェントが不必要に読み込まれ続ける場合があります。起動しました。これは面倒ですが、これらの不正なエージェントはコマンド ラインから簡単に削除できるため、ターミナルを起動してすぐに作業を終了できます。さらに、上級ユーザーが何らかの理由で launchd にロードされたエージェントを微調整したい場合があります。いずれにせよ、launchd でアイテムを一覧表示する方法、OS X でそれらを launchd から削除する方法、およびエージェントを Mac で launchd に再ロードする方法について詳しく説明します。
.場合によっては、Mac OS X のアクティビティ モニターで見つけるか、後で説明する launchctl コマンドを使用するだけです。変更を元に戻すことにした場合は、別のコマンドを使用してサービスまたはデーモンを launchd にロードし直すこともできます。これにより、最初の削除手順が効果的に取り消されます。始めましょう:
OS X の launchd から起動エージェントとサービスを削除する
これは launchd からサービスを削除する方法です。ターミナルを起動し、launchctl コマンドで次の構文を使用します。
launchctl 名前を削除
たとえば、「com.annoying.service」という名前のサービスを削除したい場合、構文は次のようになります:
launchctl remove com.annoying.service
サービスを削除するには、コマンドの前に sudo を付ける必要がある場合があります。この場合、コマンドは次のようになります:
sudo launchctl remove com.annoying.service
sudo プレフィックスを使用すると、コマンドを実行する前に管理者パスワードを入力する必要があります。
launchd に何がロードされているかを確認する方法
次のコマンド文字列を使用して、launchd にロードされているものを確認することもできます:
launchctlリスト
このコマンドは、launchd にロードされたすべてのエージェントとジョブを一覧表示し、実行中のエージェントを簡単に操作できるようにします。一度に大量の情報を画面に表示するため、次のようにコマンドを多かれ少なかれパイプすることをお勧めします:
launchctl list |more
これにより、リターン キーを押して、リスト内をゆっくり移動できます。
探しているサービスが大体わかっている場合は、「grep」を使用して正確なエージェント サービスを見つけることもできます。例として「mdworker」を使用しましょう::
launchctl list |grep mdworker
これにより、次の起動エージェントのみがレポートされます:
- 0 com.apple.mdworker.sizing - 0 com.apple.mdworker.single - 0 com.apple.mdworker.shared - 0 com.apple.mdworker .mail - 0 com.apple.mdworker.lsb - 0 com.apple.mdworker.isolation - 0 com.apple.mdworker.bundles - 0 com.apple.mdworker.32bit
一部のサービスでは、リストをダンプすると、アクティブなサービスの PID (プロセス ID) も表示される場合があります。
エージェントをlaunchdにロードする
サービスを再度有効にしてlaunchdにリロードする場合は、次のように「ロード」フラグを使用します:
launchctl load com.example.service.to.load
一部のエージェントは問題なく即座にロードされます。その他の場合は、ロードされたサービスが再び意図したとおりに機能する前に Mac を再起動する必要がある場合がありますが、ログアウトして再度ログインするだけで十分な場合もあります。