Chinese‎ > ‎

How to set timed jobs in cocoa?

Mac OS Xにおいて、定期的にあるプロセスを実行したい場合は「cron ジョブ」、「at ジョブ」「launchd ジョブ」、「periodic ジョブ」四つの方法がある。

at ジョブ」periodicジョブ」と「atジョブ」

periodic ジョブ」定期的に実行できるジョブであるが、Mac OS Xによって、実行方法が違いう。
Mac OS X v10.3まではcronコマンドで実行させる。v10.4以降はlaunchdで実行させる。

 

atジョブ」は省エネルギーするためにディフォルトで使用不可能(disable)として設定される。   cron ジョブ」と「launchdジョブ」の違い


cron」、「launchd」ともジョブ(スクリプト)を自動実行するためのデーモンプロセスである。

cron ジョブ」はMac OS Xすべてのバージョンが全部対応できるが、v10.4以降cronに替わってlaunchd で勧められている。

cron ジョブ」:

・「cron ジョブ」を実行するのは保証しない。指定される時間帯でPCがシャットダウン、スリープすれば、再起動、ウェイクアップとしても、次の時間帯がくるまでにジョブを実行しない。

・「cron ジョブ」をインストールする時、共通なリソース(crontab ファイル)を修正しなければいけない。

launchd ジョブ」:

・「launchdジョブ」毎に一個ファイルで記述する。ジョブの追加と削除は簡単になる。

・指定される時間帯でPCがスリープしても、ウェイクアップすればすぐジョブを実行できる。


・アップルドキュメント「Daemons

http://developer.apple.com/DOCUMENTATION/MacOSX/Conceptual/BPSystemStartup/Articles/Daemons.html

・アップルドキュメント「launchd.plist仕様」

http://developer.apple.com/DOCUMENTATION/Darwin/Reference/ManPages/man5/launchd.plist.5.html#//apple_ref/doc/man/5/launchd.plist

・「launchDaemons」の使い方(日本語版)

http://www.maruko2.com/mw/LaunchDaemons_(launchctl,_launchd.plist)_の使い方