====== 仕上げ ====== ここまでで、全体動作可能な状態になりました。\\ 正しく動作したでしょうか。 ===== 常駐部のデーモン化と自動起動 ===== 常駐部は最終的にはシステム起動時に自動起動し、デーモンとなるようにします。 kitchen_timer.rbの最終行を以下の通り変更してください。 KitchenTimer.new.daemon FreeBSDでは、以下のファイルを使って自動起動/停止を行います。別のOSを使う場合は、そのOSの流儀に合わせて設定してください。このファイルを、/usr/local/etc/rd.d以下へ設置し、実行権限を付けておきます。 #!/bin/sh # kitchen timer startup / shutdown script. RUBY=/usr/local/bin/ruby BASEPATH=/usr/local/kitchen_timer PIDFILE=/tmp/kitchen_timer.pid case "$1" in start) ${RUBY} -I${BASEPATH}/lib ${BASEPATH}/bin/kitchen_timer.rb ;; stop) kill `cat ${PIDFILE}` ;; restart) kill `cat ${PIDFILE}` sleep 1 ${RUBY} -I${BASEPATH}/lib ${BASEPATH}/bin/kitchen_timer.rb ;; *) echo "Usage: `basename $0` {start|stop|restart}" >&2 exit 64 ;; esac exit 0 ===== 電源OFF対応 ===== 組み込みシステムは、電源の突然のOFFにも耐えなければなりません。\\ ほとんどの場合、オペレータのシャットダウン操作を期待することはできないからです。 FreeBSDでは、ディスクのリードオンリマウントが簡単に実現できるように、起動スクリプトがとてもよく考えられているので、これを利用します。\\ 変更するファイルは、/etc/fstabです。 # Device Mountpoint FStype Options Dump Pass# /dev/ada0p2 / ufs ro 1 1 /dev/ada0p3 none swap sw 0 0 2行目のOptions項をrwからroに変更し、再起動します。 これだけでルートパーティションがリードオンリマウントされ、/tmpなどの書き込みが必要な部分は、RAMDISKとして構成されます。\\ シャットダウン操作をせずにリブートをしてみて、fsck等がかからないことを確認してみましょう。