crontab のジョブに合わせてマシンの
wakeup/poweron を行なうデーモン cronwake
if you want to execute a job which take several minutes or hours
to finish,
nosleep may be handy.
[2004/6/19]
first release.
[2004/10/29]
余談:
このプログラムを使っている場合だけでなく、
システム環境設定で自動電源投入を設定している場合も同様の注意点:
マシンのメモリの増設等を行なっている最中に電源が入らないように注意して下さい。
私は好運にもびっくりするだけで済みましたが。
最も近い未来の wakeup あるいは poweron のスケジュールは、
次のようにシステム標準のコマンド pmset で確認することができます。
% pmset -g shced
Scheduled power events:
poweron at 10/29/2004 6:55:00AM by cronwake
[2004/11/24]
手元の iMac G5 (Boot ROM Version: 5.2.2f2, Mac OS X 10.3.6) では、
cronwake-1.16 はスリープから復帰させることができませんでしたので、
回避策を組み込みました。私の環境だけの問題かも知れませんが、
ハードウェアか、SMU のファームウェアか、SMU を制御するカーネル
に問題か仕様変更があるのではないかと考えています。
pmset -g sched を実行して、期待した時刻に
wake イベントが登録されているにもかかわらず、
その時刻にスリープから復帰しない場合は、
コマンドライオプションに -w 1 を指定して下さい。
ただし、これを指定した場合、cronwake は
wake イベントに代えて wakepoweron イベントを登録するようになります。
つまり、CRONWAKE=wake のジョブに対しても、
(期待しない) 電源 ON を行なうようになります。
[2004/11/24]
cronwake-1.16 cannot wake-up My iMac G5
(Boot ROM Version: 5.2.2f2, Mac OS X 10.3.6) from sleep.
cronwake-1.21 has a workaround for this problem.
If cronwake cannot wake your machine up
and "pmset -g sched" shows correctly "wake" event,
please try "-w 1" command line option.
[2004/11/25]
cronwake-1.22: much redundancy to avoid race conditions.
[2005/1/6]
cronwake-1.27 (alpha):
re-schedule all events when the clock is changed by hand.
fixed a bug around poweron job.
[2005/2/2]
[2005/4/24]
cronwake-1.31.
(fix for compilation error/warning on some plathome)
[2006/2/2]
上記 2004/11/24 に記載した、
iMac G5 が wake イベントを無視する OS のバグの件ですが、
久しぶりに試してみたところ、直っているようです。
Mac OS X 10.4.0 と Mac OS X 10.4.4 の間のどこかで fix されたと思われます。
[2007/10/30]
cronwake-1.32
: fix for Mac OS X 10.5 Leopard compatibility.
Mac OS X 10.5 でユーザの crontab が置かれるディレクトリが以前までの
/var/cron/tabs
から
/usr/lib/cron/tabs
に変更になりましたので、
Mac OS X 10.5 上の cronwake は
-u /usr/lib/cron/tabs
という引数を付けて起動してください。
それから mmap(2) の仕様が変わって
Mac OS X 10.5 でコンパイルすると動かないので、修正しました。
なお、Mac OS X 10.4 以下でコンパイルしたバイナリは
Mac OS X 10.5 でそのまま動くはずですので、
わざわざコンパイルし直す必要はありません。