ローカルのMacで定期的にスクリプトを実行するために最近のMacではCronではなくLaunchDeamon(Launchd)を使うらしいんですが、そのための設定ファイルがplistでまあわかりにくいわけですよ。
使おうとするとこんな感じでやることになります。
また、MacAppのLaunchdクライアントもあります(有料)。
Lingon - Peter Borg Apps
僕個人としてはそんなに使わないんだからケチりたいなーと思っていたところ。よく探したらplistファイルを生成するサービスがあったので紹介します。
launched
Launched A launchd.plist generator
設定する
インストール
設定が終わったら画面右下のCreateボタンを押し、次の画面へ。するとこのような画面が得られます。
Installのところにあるコマンドをコピペしてシェルに貼り付けて実行すると、ユーザー用の設定ファイル置き場にplistがコピーされた上でlaunchctl
での実行登録まで済ませてくれます。
シェルスクリプトの中身はこんなふうになっていて、該当ディレクトリにファイルをコピーしてlaunchctl
を呼び出すだけのものです。危険なことはなんもないですね。
echo downloading com.zerowidth.launched.hogewriter.plist...
mkdir -p ~/Library/LaunchAgents
curl -o ~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plist http://launched.zerowidth.com/plists/7ec12ca0-ab2b-0131-266c-76b008842fe3.xml
echo installing com.zerowidth.launched.hogewriter.plist...
launchctl load -w ~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plist
無効にする
とりあえず試してみるにしても、バックグラウンドで勝手に動き続けてしまうものなので、解除方法を知らないと大変です。解除は自分でやりましょう。
ここが参考になります。
LaunchDaemons (launchctl, launchd.plist) の使い方 - maruko2 Note.
例えばさっきの例、~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plist
で言うと、
% launchctl unload -w ~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plist
unload -w
で無効化してあげれば大丈夫です。