ユーザ用ツール

サイト用ツール


kitchen_timer:仕上げ

仕上げ

ここまでで、全体動作可能な状態になりました。
正しく動作したでしょうか。

常駐部のデーモン化と自動起動

常駐部は最終的にはシステム起動時に自動起動し、デーモンとなるようにします。

kitchen_timer.rbの最終行を以下の通り変更してください。

kitchen_timer.rb
KitchenTimer.new.daemon

FreeBSDでは、以下のファイルを使って自動起動/停止を行います。別のOSを使う場合は、そのOSの流儀に合わせて設定してください。このファイルを、/usr/local/etc/rd.d以下へ設置し、実行権限を付けておきます。

kitchen_timer.sh
#!/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です。

/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等がかからないことを確認してみましょう。

kitchen_timer/仕上げ.txt · 最終更新: 2014/11/20 17:55 by hirohito