Macを使っていて、「LaunchAgent」や「launchd」という言葉を見かけたことはありませんか?
普段は意識しませんが、Macの起動時やアプリが動く裏側で、この「LaunchAgent」が重要な役割を果たしています。
よくある疑問
- 「そもそも何のためにあるの?」
- 「削除しても大丈夫?」
- 「怪しいファイルがあるけど危険?」
- 「勝手に何かが起動するのを止めたい」
この記事では、これらの疑問に丁寧にお答えします。
LaunchAgentを正しく理解すれば、Macをより安全で快適に使えるようになります。
LaunchAgentとは?

簡単に言うと何?
LaunchAgentは、Macで自動的にプログラムを起動する仕組みです。
具体的な例
- Macを起動したときに自動でアプリが立ち上がる
- 定期的にバックアップを取る
- 通知を送る
- バックグラウンドでデータを更新する
これらの「自動で行われる処理」を管理しているのがLaunchAgentです。
関連用語の説明
launchd(ランチディー) MacOSの「タスク管理システム」。LaunchAgentはこのlaunchdによって動きます。
LaunchDaemon(ランチデーモン) LaunchAgentと似ていますが、用途が違います。
項目 | LaunchAgent | LaunchDaemon |
---|---|---|
対象 | ログインしたユーザー | システム全体 |
実行タイミング | ユーザーログイン後 | Mac起動時 |
権限 | 一般ユーザー権限 | 管理者権限 |
例 | 個人用アプリの自動起動 | システムサービス |
どこにファイルが保存されているの?
LaunchAgentの設定ファイルは、以下の場所に保存されています。
場所一覧
/System/Library/LaunchAgents/ # システム標準(触らない)
/Library/LaunchAgents/ # 全ユーザー共通
~/Library/LaunchAgents/ # 個人用(一番よく使う)
確認方法
# 個人用LaunchAgentを確認
ls ~/Library/LaunchAgents/
# 全ユーザー共通を確認
ls /Library/LaunchAgents/
LaunchAgentを確認する方法

Finderで確認する
手順
- Finderを開く
Cmd + Shift + G
を押す~/Library/LaunchAgents
と入力してEnter- フォルダの中身を確認
何が見える?
.plist
という拡張子のファイル- ファイル名は
com.会社名.アプリ名.plist
のような形式
ターミナルで確認する
現在動いているLaunchAgentを確認
launchctl list | grep -v "com.apple"
実行結果(例)
12345 0 com.adobe.AdobeCreativeCloudDesktop
23456 0 com.microsoft.OneDrive
34567 0 com.dropbox.DropboxMacUpdate
数字の意味
- 1列目:プロセスID(動いている証拠)
- 2列目:終了コード(0は正常)
- 3列目:LaunchAgentの名前
詳細情報を確認する
特定のLaunchAgentの詳細を確認
launchctl list com.adobe.AdobeCreativeCloudDesktop
実行結果(例)
{
"Label" = "com.adobe.AdobeCreativeCloudDesktop";
"LimitLoadToSessionType" = "Aqua";
"OnDemand" = false;
"LastExitStatus" = 0;
"PID" = 12345;
"Program" = "/Applications/Adobe Creative Cloud/ACC/Creative Cloud.app/Contents/MacOS/Creative Cloud";
};
LaunchAgentの設定ファイルを理解する
.plistファイルの基本構造
LaunchAgentの設定は、XML形式の.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.example.myapp</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/MyApp.app/Contents/MacOS/MyApp</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<false/>
</dict>
</plist>
主要な設定項目
キー | 意味 | 例 |
---|---|---|
Label | LaunchAgentの識別名 | com.example.myapp |
ProgramArguments | 実行するプログラムのパス | /Applications/MyApp.app/... |
RunAtLoad | ログイン時に自動実行するか | true / false |
KeepAlive | プログラムが終了したら再起動するか | true / false |
StartInterval | 定期実行の間隔(秒) | 3600 (1時間ごと) |
実際のファイル例
例1:Dropboxの自動起動
<dict>
<key>Label</key>
<string>com.dropbox.DropboxMacUpdate</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/Dropbox.app/Contents/MacOS/Dropbox</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>LSUIElement</key>
<true/>
</dict>
例2:定期的なスクリプト実行
<dict>
<key>Label</key>
<string>com.user.backup</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/python3</string>
<string>/Users/username/backup_script.py</string>
</array>
<key>StartInterval</key>
<integer>86400</integer> <!-- 24時間ごと -->
</dict>
LaunchAgentを無効化・削除する方法

無効化(一時的に止める)
説明 ファイルを削除せずに、動作だけを止める方法です。
コマンド
# 無効化
launchctl unload ~/Library/LaunchAgents/com.example.myapp.plist
# 有効化(再開)
launchctl load ~/Library/LaunchAgents/com.example.myapp.plist
完全削除
手順
- 無効化する
- ファイルを削除する
実際の例
# 1. 無効化
launchctl unload ~/Library/LaunchAgents/com.suspicious.app.plist
# 2. ファイル削除
rm ~/Library/LaunchAgents/com.suspicious.app.plist
# 3. 確認
launchctl list | grep com.suspicious.app
Finderでの削除
手順
~/Library/LaunchAgents
フォルダを開く- 削除したいファイルを選択
- ゴミ箱に移動
- Mac再起動またはログアウト・ログイン
注意 削除前に必ず無効化しておきましょう。
危険なLaunchAgentの見分け方
注意すべきサイン
怪しいファイル名
com.unknown.agent.plist # 会社名が不明
randomstring123.plist # ランダムな文字列
.hidden_file.plist # 隠しファイル
backdoor.plist # 明らかに怪しい名前
怪しい実行場所
/tmp/malware # 一時フォルダ
/Users/username/Downloads/ # ダウンロードフォルダ
/var/folders/ # システムの一時フォルダ
安全なLaunchAgentの例
信頼できる会社のもの
com.apple.〇〇 # Apple純正
com.adobe.〇〇 # Adobe
com.microsoft.〇〇 # Microsoft
com.google.〇〇 # Google
com.dropbox.〇〇 # Dropbox
調査方法
1. ファイル内容を確認
# ファイルの中身を表示
cat ~/Library/LaunchAgents/suspicious_file.plist
# または
open -e ~/Library/LaunchAgents/suspicious_file.plist
2. 実行されるプログラムを確認
# そのファイルが何を実行しているか確認
ls -la /path/to/program
# プログラムの詳細情報
file /path/to/program
3. オンラインで調査
- ファイル名をGoogle検索
- VirusTotalでスキャン
- Apple サポートコミュニティで質問
自分でLaunchAgentを作る方法
簡単なスクリプト自動実行
例:毎日バックアップを取る
ステップ1:スクリプトを作成
# バックアップスクリプトを作成
nano ~/backup_script.sh
スクリプト内容
#!/bin/bash
# 重要ファイルをバックアップ
cp -r ~/Documents ~/Backup/Documents_$(date +%Y%m%d)
echo "Backup completed at $(date)" >> ~/backup.log
実行権限を付与
chmod +x ~/backup_script.sh
ステップ2:LaunchAgentファイルを作成
nano ~/Library/LaunchAgents/com.user.dailybackup.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.user.dailybackup</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>/Users/yourusername/backup_script.sh</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>2</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
ステップ3:有効化
launchctl load ~/Library/LaunchAgents/com.user.dailybackup.plist
アプリの自動起動設定
例:ログイン時にターミナルを自動起動
LaunchAgentファイル
<?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.user.terminal.autostart</string>
<key>ProgramArguments</key>
<array>
<string>/System/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>LSUIElement</key>
<true/>
</dict>
</plist>
GUIツールを使った管理

LaunchControl(おすすめ)
特徴
- 視覚的にLaunchAgentを管理
- 設定の編集・作成が簡単
- 有料だが機能豊富
ダウンロード Mac App Storeまたは公式サイトから
Lingon X
特徴
- シンプルで使いやすい
- LaunchAgentの作成・編集・削除が可能
- 有料アプリ
無料の代替手段
ターミナル + テキストエディタ
# リスト表示
launchctl list
# ファイル編集
open -e ~/Library/LaunchAgents/filename.plist
# 無効化・有効化
launchctl unload/load ファイルパス
トラブルシューティング
よくある問題と解決方法
問題1:LaunchAgentが動かない
確認項目
# 1. ファイルの場所が正しいか確認
ls ~/Library/LaunchAgents/
# 2. ファイルの権限確認
ls -la ~/Library/LaunchAgents/filename.plist
# 3. 構文エラーの確認
plutil ~/Library/LaunchAgents/filename.plist
# 4. ログの確認
tail -f /var/log/system.log | grep filename
解決手順
- ファイルの権限を修正:
chmod 644 filename.plist
- XML構文をチェック
- プログラムパスが正しいか確認
- 再読み込み:
launchctl unload
→launchctl load
問題2:勝手に起動するアプリを止めたい
手順
# 1. 動いているプロセスを確認
launchctl list | grep -v com.apple
# 2. 該当するものを無効化
launchctl unload ~/Library/LaunchAgents/unwanted.plist
# 3. ファイルを削除
rm ~/Library/LaunchAgents/unwanted.plist
問題3:削除したのに復活する
原因
- アプリが再インストールしている
- 複数の場所にファイルがある
- システム保護されている
対処法
# すべての場所を確認
find /Library/LaunchAgents ~/Library/LaunchAgents /System/Library/LaunchAgents -name "*suspicious*"
# アプリ自体をアンインストール
# App Cleanerなどのツールを使用
セキュリティ上の注意点
危険な設定を避ける
避けるべき設定
<!-- root権限での実行(危険) -->
<key>UserName</key>
<string>root</string>
<!-- システムフォルダへのアクセス -->
<key>ProgramArguments</key>
<array>
<string>/System/...</string>
</array>
<!-- 外部ネットワークからの実行 -->
<key>Program</key>
<string>http://suspicious-site.com/malware</string>
定期的な確認
月1回のチェック
# 新しいLaunchAgentがないか確認
ls -la ~/Library/LaunchAgents/
# 怪しい動作がないか確認
launchctl list | grep -v com.apple | head -10
バックアップ
重要な設定をバックアップ
# LaunchAgentフォルダ全体をバックアップ
cp -r ~/Library/LaunchAgents ~/Backup/LaunchAgents_$(date +%Y%m%d)
# 特定のファイルのみ
cp ~/Library/LaunchAgents/important.plist ~/Backup/
まとめ
LaunchAgentの重要ポイント
基本理解
- Macで自動実行を管理する仕組み
- .plistファイルで設定を記述
- ユーザーレベルでの自動化に使用
安全な管理
- 定期的に内容を確認する
- 怪しいファイルは調査してから削除
- バックアップを忘れずに取る
活用方法
- 日常作業の自動化
- アプリの自動起動設定
- 定期的なメンテナンス作業
コメント