Macに標準搭載されているlaunchdでプログラムを自動的に定期実行する方法をまとめました。
launchd
Linuxだとcronでプログラムを定期実行することが多いです。
Macにもcronは標準搭載されていますが、非推奨とされているようで権限周りのトラブルがあり、Linuxよりすんなり動かせませんでした。
そこで、Macで推奨されているlaunchdでプログラムを定期実行する方法を紹介します。
launchdでプログラムを定期実行
plistファイルを作成します。直接エディタで作成するか、https://launched.zerowidth.com/という外部サービスなどで作成できます。
作成したplistファイルは用途用途ごとに以下の場所に保存します。
場所 | 用途 |
---|---|
~/Library/LaunchAgents/<ラベル名>.plist | ユーザー単位のエージェント |
/Library/LaunchAgents/<ラベル名>.plist | 管理者が提供するユーザーごとのエージェント |
/Library/LaunchDaemons/<ラベル名>.plist | 管理者によって提供されるシステム全体のデーモン |
記載例
1分(60秒)ごとに「/Users/shells/example.sh」を実行する場合のplistファイル
■~/Library/LaunchAgents/example1.plist
毎日2時に「/Users/shells/example.sh」を実行する場合のplistファイル
■~/Library/LaunchAgents/example2.plist
「launchctl load」コマンドでplistファイルを読み込み、起動します。
【例】
launchctl load ~/Library/LaunchAgents/example1.plist
停止する場合は「launchctl unload」コマンドを使います。
【例】
launchctl unload ~/Library/LaunchAgents/example1.plist
エラー「Load failed: 5: Input/output error」
Load failed: 5: Input/output error Try running `launchctl bootstrap` as root for richer errors.
関連ページ
【Mac入門】基本設定、使い方、カスタマイズ術
macOSの基本設定、使い方、カスタマイズ術について解説します。
コメント