【完全ガイド】macOS launchd でスクリプトを自動実行する方法

【完全ガイド】macOS launchd でスクリプトを自動実行する方法

PR表記: 当記事にはアフィリエイトリンクが含まれます。商品の購入は自己判断でお願いします。 macOSでスクリプトを定期実行したい場合、launchdが標準的な方法です。Linuxのcronに相当する仕組みですが、macOSではlaunchdの利用が推奨されています。この記事では、plistファイルの書き方からデバッグまで、実用的な内容を解説します。 launchdとは launchdはmacOSのプロセス管理デーモンです。OS起動時にサービスを立ち上げたり、指定した時刻にスクリプトを実行したりできます。 plist(Property List)ファイルに設定を書き、~/Library/LaunchAgents/ に配置することで、ユーザーレベルのジョブを登録できます。 cronとの違い 項目 cron launchd macOS推奨 非推奨 推奨 スリープ復帰後 実行されない 実行される ログ管理 自分で設定 標準で対応 設定形式 crontab plist (XML) launchdの大きなメリットは、Macがスリープしていて実行タイミングを逃した場合でも、復帰後に実行してくれる点です。 基本的なplistの書き方 例: 毎日9時にPythonスクリプトを実行 <?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.daily-script</string> <key>ProgramArguments</key> <array> <string>/usr/bin/python3</string> <string>/Users/yourname/scripts/daily_task.py</string> </array> <key>StartCalendarInterval</key> <dict> <key>Hour</key> <integer>9</integer> <key>Minute</key> <integer>0</integer> </dict> <key>StandardOutPath</key> <string>/tmp/daily-script-out.log</string> <key>StandardErrorPath</key> <string>/tmp/daily-script-err.log</string> <key>WorkingDirectory</key> <string>/Users/yourname/scripts</string> </dict> </plist> 各キーの説明 Label: ジョブの一意な識別子。逆ドメイン形式が慣例 ProgramArguments: 実行するコマンドと引数を配列で指定 StartCalendarInterval: 実行タイミング(時刻指定) StandardOutPath / StandardErrorPath: ログの出力先 WorkingDirectory: スクリプト実行時の作業ディレクトリ plistの配置と登録 1. ファイルを配置 cp com.example.daily-script.plist ~/Library/LaunchAgents/ 2. ジョブを登録 launchctl load ~/Library/LaunchAgents/com.example.daily-script.plist 3. 即時実行でテスト launchctl start com.example.daily-script 4. ジョブを停止・削除 launchctl unload ~/Library/LaunchAgents/com.example.daily-script.plist 実践例: 定期バックアップスクリプト 特定のフォルダを毎日23時にバックアップするスクリプトの例です。 ...

February 22, 2026 · 2 分 · ぷーた