動機
・cronはsuspend状態から実行できない。
・目覚まし機能をつけたい。
・Rubyでいろいろしたい。
など...
準備
初めにやっておくこと
・復帰からのパスワード入力をなしにする。
suspendのチェックをはずす。
PC復帰について
参考にさせってもらったサイト
PCを指定時刻に起動する
http://lostman-worlds-end.blogspot.com/2008/12/pc.html
PCのアラーム設定。
http://www.mythtv.org/wiki/ACPI_Wakeup#Using_.2Fsys.2Fclass.2Frtc.2Frtc0.2Fwakealarm
上記のサイトのおかげでsuspend状態からでも(多分shutdownからでも)
PCが復帰できました。
簡単に説明すると
$SECSに1970-01-01 00:00:00 UTC からの秒数を設定
これでだけでPCが復帰します。
しかし、パーミッション云々などの問題で私はハマりました。
そのため、スクリプトを作っておくといいです。
#!/bin/sh
then
echo usage:
fi
SECS=`date -u --date "$1 $2" +%s`
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo $SECS > /sys/class/rtc/rtc0/wakealarm
cat /proc/driver/rtc
alarm.shの使い方
% sudo ./alarm.sh 2009-06-26 12:45:00 ##時刻を直接設定
##現在の時刻の5分後に設定
rtc_time : 22:05:01
alrm_time : 22:10:00 ## ここが表示されれば成功
alarm_IRQ : yes
alrm_pending : no
24hr : yes
periodic_IRQ : no
update_IRQ : no
HPET_emulated : yes
DST_enable : no
periodic_freq : 1024
batt_status : okay
あとはPCが復帰するかsuspendしてテストしてみてください。
cronと連携
cronを実行するにはPCが動いていなければならないので、
Rubyを使って実行五分前に復帰できるようなプログラムを
作りたいと思っていました。
http://bitbucket.org/shiro/cronwakeuprb/src/tip/cronWakeup.rb
あとはこれを実行するタイミングですが、
やはりsuspendをする前が絶妙です。
参考サイト http://www.revulo.com/blog/20090512.html
Ubuntu8.10では
にスクリプトを置いておくとsuspendやshutdown前にプログラムが実行されるようです。
ソースを入手と解凍
% wget -O cronWakeup.gz http://bitbucket.org/shiro/cronwakeuprb/get/tip.gz
ファイル実行権限を変更
% cd cronwakeuprb/
実行するスクリプトを置く
#!/bin/sh
/home/user/cronwakeuprb/cronWakeup.rb init
root権限で実行するように設定
cronWakeup.rbのについて
使い方
% sudo cronWakeup.rb init #アラームを設定
特定のプログラムしか復帰したくないという場合は
rootユーザーで分けると便利かもしれません。
% sudo crontab -e #rootのcrontabを設定
設定...
問題
時間設定が完璧でない。
でcronを設定できます。
は設定できますが、
範囲設定やリスト設定は使えません。
上記設定使えません。
今後
上記の問題を解決できたらいいなと思っています。
あとはリファクタリングしていきたいです。
何かご指摘あれば、よろしくお願いします。
その他
cronを駆使してamarokをコントロールするという
似たようなプログラムを発見しました。