【初心者向け】MacのLaunchAgentとは?仕組み・設定方法・削除までを完全解説!

Mac

Macを使っていて、「LaunchAgent」や「launchd」という言葉を見かけたことはありませんか?

普段は意識しませんが、Macの起動時やアプリが動く裏側で、この「LaunchAgent」が重要な役割を果たしています。

よくある疑問

  • 「そもそも何のためにあるの?」
  • 「削除しても大丈夫?」
  • 「怪しいファイルがあるけど危険?」
  • 「勝手に何かが起動するのを止めたい」

この記事では、これらの疑問に丁寧にお答えします。

LaunchAgentを正しく理解すれば、Macをより安全で快適に使えるようになります。

スポンサーリンク

LaunchAgentとは?

簡単に言うと何?

LaunchAgentは、Macで自動的にプログラムを起動する仕組みです。

具体的な例

  • Macを起動したときに自動でアプリが立ち上がる
  • 定期的にバックアップを取る
  • 通知を送る
  • バックグラウンドでデータを更新する

これらの「自動で行われる処理」を管理しているのがLaunchAgentです。

関連用語の説明

launchd(ランチディー) MacOSの「タスク管理システム」。LaunchAgentはこのlaunchdによって動きます。

LaunchDaemon(ランチデーモン) LaunchAgentと似ていますが、用途が違います。

項目LaunchAgentLaunchDaemon
対象ログインしたユーザーシステム全体
実行タイミングユーザーログイン後Mac起動時
権限一般ユーザー権限管理者権限
個人用アプリの自動起動システムサービス

どこにファイルが保存されているの?

LaunchAgentの設定ファイルは、以下の場所に保存されています。

場所一覧

/System/Library/LaunchAgents/     # システム標準(触らない)
/Library/LaunchAgents/            # 全ユーザー共通
~/Library/LaunchAgents/           # 個人用(一番よく使う)

確認方法

# 個人用LaunchAgentを確認
ls ~/Library/LaunchAgents/

# 全ユーザー共通を確認
ls /Library/LaunchAgents/

LaunchAgentを確認する方法

Finderで確認する

手順

  1. Finderを開く
  2. Cmd + Shift + Gを押す
  3. ~/Library/LaunchAgentsと入力してEnter
  4. フォルダの中身を確認

何が見える?

  • .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>

主要な設定項目

キー意味
LabelLaunchAgentの識別名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. 無効化する
  2. ファイルを削除する

実際の例

# 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での削除

手順

  1. ~/Library/LaunchAgentsフォルダを開く
  2. 削除したいファイルを選択
  3. ゴミ箱に移動
  4. 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

解決手順

  1. ファイルの権限を修正:chmod 644 filename.plist
  2. XML構文をチェック
  3. プログラムパスが正しいか確認
  4. 再読み込み:launchctl unloadlaunchctl 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ファイルで設定を記述
  • ユーザーレベルでの自動化に使用

安全な管理

  • 定期的に内容を確認する
  • 怪しいファイルは調査してから削除
  • バックアップを忘れずに取る

活用方法

  • 日常作業の自動化
  • アプリの自動起動設定
  • 定期的なメンテナンス作業

コメント

タイトルとURLをコピーしました