ぴよログ

↓に移転したのでこっちは更新されません、多分。

Launchd用plistジェネレータ

移転しました →

ローカルのMacで定期的にスクリプトを実行するために最近のMacではCronではなくLaunchDeamon(Launchd)を使うらしいんですが、そのための設定ファイルがplistでまあわかりにくいわけですよ。

使おうとするとこんな感じでやることになります。

launchd(8)の使い方 - Qiita

また、MacAppのLaunchdクライアントもあります(有料)。

Lingon - Peter Borg AppsLingon - 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._%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9)

例えばさっきの例、~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plistで言うと、

% launchctl unload -w ~/Library/LaunchAgents/com.zerowidth.launched.hogewriter.plist

unload -wで無効化してあげれば大丈夫です。