LaunchAgentとデーモンの停止


23

私は大学の環境で管理者として働いています。課題の1つは、CS専攻の学生がインストールしたサービスを停止することです。しばらく前に、彼らは管理者のアクセス権を取得し、いくつかのシステムに起動エージェントとデーモンをインストールしました。問題は、これらがlaunchagentsディレクトリーまたはlaunchdaemonsディレクトリーに存在しないことです。

したがって、私の質問は、これらのデーモンサービスのパスを見つける方法です。次に、これらのサービスを停止する方法です。これらのいくつかは何度も何度も起動する可能性があるため(特定のフラグに基づいて)。


同様の問題。で起動されたデーモンを停止できませんlaunchctl load -wF /Library/LaunchDaemons/name.of.this.plist
メルテミ

回答:


20

このブートの項目を停止する場合は、単にを介してlaunchdにアンロードコマンドを発行しlaunchctlます。永続的な修正を行うには、値がtrueの無効なキーをplistに追加するか、launchdが自動的にスキャンしないフォルダーにファイルを削除/移動します。

  • launchctl unload /System/Library/LaunchAgents/com.apple.AppStoreUpdateAgent.plist

launchctlのmanページには、ジョブを制御するための素晴らしいドキュメントがあります。CSメジャーの一般的な敗北については、既存のアップルプリストを編集して予期しない動作をさせることも考えられるため、OSを再インストールしてユーザーデータを元に戻す方がはるかに簡単であることがわかりますバックアップから(/ System / Library、/ Libraryスペースにplistファイルを再インストールすることに注意してください(および、おそらく管理ユーザーの〜/ Libraryも監査します)。変更方法を知っている人に対してadmin / rootを失う)システムは基本的にゲームオーバーであり、変更に対する防御(検出および無効化)は攻撃とは対照的に非常に時間がかかります(既知の適切なソースからシステムを再インストールし、構成管理ツールを使用して変更されたファイルが検出されるようにします)。


ポイントは、plistが保存されている場所がわからないことです。LaunchAgentsディレクトリを検索しましたが、そこにアプリが表示されません。
Prashant

彼らはどこにでもいることができます。セーフモードで起動し、launchctlリストの出力を通常のブートリストと比較できます。mdfindは、不正ジョブを含むファイルを表示します(それらがスポットライトから除外していない場合)。また、理論的には、起動中に読み込むファイルを追跡するためにlaunchd自体に対してfs_usageを実行することもできますが、ブート時にすぐに実行するfs_usageを取得するためのロジスティクスは、すべてのplistファイルを検査する必要があるという事実と相まって、きれいに始めるのではなく、「変更を検出して外科的に除去する」ために作業をカットしました。
bmike

1
システム上のすべての.plistを本当に検索したい場合は、これを実行します。長いリストです。find / -type f -name "*.plist"
-afragen

man launchctl アンロード 以前のバージョンでは、このオプションは構成ファイルを変更していました。これで、Disabledキーの状態はディスク上の他の場所に保存されます。..(
ナキロン

@Nakilonバージョンについて詳しく教えてください。launchdまたは別の「以前のバージョン」の10.11オーバーホールについて言及していますか?
bmike

17

私がこれを行うために見つけた最も簡単な方法は

sudo launchctl list | grep "rough name of what you want to find"
sudo launchctl remove "label.of.the.file"

おかげで、これはまさに私が望んでいたものです。ファイルを削除した後にサービスを削除する方法!
chmac

2

これらの場所を確認してください:

/ Users / your username / Library / LaunchAgents /

/ライブラリ/ LaunchAgents /

/ライブラリ/ LaunchDaemons /

/ System / Library / LaunchAgents /

/ System / Library / LaunchDaemons /


1

「launchctl dumpstate」を実行すると、ロードされたすべてのサービスとスタートアップ.plistおよびコンテンツへのパスが表示されます。

多くの情報をダンプするため、おそらく以下のように実行することをお勧めします。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.