launchdジョブを効果的に実行する鍵は、ジョブを実行する状況を指定することです。Lingonでは、最も頻繁に使用されるオプションは「基本」、「その他」、「パス」の各パネルにあります。
RunAtLoad: ジョブのロード時にlaunchd項目を直ちに実行するには、このオプションを選択します。起動時またはログイン時に実行したいジョブはすべて、RunAtLoadを選択する必要があります。
OnDemand: このオプションを選択すると、launchd は使用後に毎回終了します。 このオプションを選択しない場合 、アイテムは継続的に実行されます。アイテムが終了またはクラッシュした場合、launchd は直ちに再起動します。重要なアイテム(サーバープログラムやネットワーク監視ユーティリティなど)を常に実行しておく必要がある場合は、このオプションが便利です。
StartInterval: 項目を一定の間隔(例えば10秒ごと)で実行するように設定するには、「その他」ペインの「StartInterval」フィールドに秒数を入力します。例えば、バックアップコマンド(rsyncなど)を4時間ごとに実行するには、次のように入力します。
14400
秒。
StartCalendarInterval: これらのフィールドは、
クローン
: 特定の曜日、月、日、時間、分間隔の数値を入力するか、空欄にして「すべて」を指定します。例えば、毎日午前2時30分に再起動スクリプトを実行する場合は、次のように入力します。
2
時間フィールドで、
30
Minフィールドに数値を入力し、残りは空白のままにしてください。Launchdのカレンダー間隔はMac OS X 10.4または10.4.1では正しく機能しませんでしたが、これらの問題は10.4.2アップデートで修正されました。ただし、cronとは異なり、launchdは現在数値の範囲を使用できません。各フィールドには単一の整数を入力するか、空白にする必要があります。
StartIntervals は常に StartCalendarIntervals をオーバーライドします。StartInterval に例えば 60 秒間隔を入力した場合、StartCalendarIntervals で特定の時間または特定の日にのみ実行するように指定していても、アイテムは 常に 60 秒間隔で実行されます。
QueueDirectories: パスパネルのこのセクションに、通常は空のフォルダへのパスを入力すると、そのフォルダ内にアイテムが出現するたびにlaunchdアイテムが実行され、フォルダが空になると終了します。この条件は、特定のフォルダ内に出現するファイルを処理した後、直ちに削除するスクリプトに最適です。
WatchPaths: WatchPaths は AppleScript のフォルダアクションに似た機能を持ちますが、AppleScript だけでなく任意のプログラムやスクリプトをトリガーでき、ファイルだけでなくフォルダも監視できます。ここにパスを入力すると、その項目に変更があった際に launchd 項目が実行されます。フォルダへのパスを入力すると、そのフォルダ内でファイルが追加、削除、または変更された際に項目が実行されます(サブフォルダの内容の変更は無視されます)。
仕事のトラブルシューティング
コードは非常に繊細です!不要なスペース、大文字と小文字の誤用、タイプミスなどがあると、ジョブが失敗する可能性があります。launchd ジョブが正しく動作しない場合は、「アンロード」をクリックしてジョブを終了してください。スクリプトがある場合は、ターミナルで手動で実行して再確認してください。次に、Lingon の「エキスパート」ペインに表示されるジョブの .plist の内容と、ここに表示されているスクリーンショットを比較してください。すべてが一致する場合は、「基本」ペインに移動し、「無効」オプションが選択されていないことを確認して「保存のみ」をクリックします。「再ロード」をクリックしてジョブを再読み込みしてください。
バックアップジョブ: Lingon の「Expert」タブをクリックすると、バックアップジョブのコードがおおよそ次のようになります。(もちろん、Users フォルダを独自の保存先にバックアップするため、名前は異なります。)
DropBoxジョブ: Lingonの「Expert」タブをクリックすると、Dropboxジョブのコードが大体以下のようになります。(ここには私のユーザー名ではなく、あなたのユーザー名が表示されます。)