Macで定期実行するlaunchdの使い方がハマってしまい、食わず嫌いをしていたが、ようやく原因がわかったので記事化。
私の場合、ハマったのはバッチファイルなどのプログラムの置き場所だった。
DocumentsやDownloadやDesktopなどは権限周りがうるさく、実行できなかったのが原因。
手順含めて記録しておく。
前提条件
ゴール
1分ごとにhellowworld.txtに実行日時とhelloworldを追記する
1.動かしたいプログラムを用意
プログラムは何でも良いが、今回はpythonで用意した。
プログラムは**「/Users/(ユーザー名)」**の直下に置く。
「Documents」や外部SSDなどの「/Volumes/〜」などではうまく動かなかった。
2.バッチファイルを用意する
anaconda3を使用しており、環境をアクティベイトしているが、必要なければ割愛してOK。
「python 絶対パス」で実行
3.バッチファイルに実行権限を付与する
バッチファイルに実行権限を与える
4.プロパティリスト(plist)を用意する
下記のサイトを参考にplistを用意する
Launched - A Plist Generator
Webサービスで Mac OS X の launchd (plist) を作成してワンライナーでインストールする #plists - Qiita
5.プロパティリスト(plist)を「~/Library/LaunchAgents/」に移動、権限変更
6.プロパティリスト(plist)をロードし、定期実行を開始
7.プロパティリスト(plist)がロードされているか確認
8.プロパティリスト(plist)をアンロードし、定期実行を終了
9.Launchdを強制実行
10.plistの構文エラー確認
より詳細のエラー表示