daemontools on FreeBSD 4.2R

[ Nob's Home | FreeBSD ]

FreeBSD 4.2Rにdaemonの管理・記録を行うdaemontoolsをinstallしてみた。

最初に、起動と記録に使用するdaemontoolをinstall 参考

基本的にportsになっているので活用させてもらう。

# cd /usr/ports/sysutils/daemontool
# make install
これによりdaemontools-0.70.tar.gzがinstallされる。

defaultでは/serviceを使用するのだが、今回は、代わりに/var/serviceを使用するので作製しておく

# mkdir /var/service

svscanの起動を/usr/local/etc/rc.d/svscan.sh で行うが、portsのものはstart/stopが効かないので、以下のscriptに変更しておく。

#!/bin/sh
PATH=/usr/local/bin:/usr/bin:/bin

case "$1" in
  start)
        echo -n "Starting svscan: "
        exec env - PATH="$PATH" \
        csh -cf 'svscan /var/service &; echo $! > /var/run/svscan.pid'
        touch /var/lock/subsys/svscan
        ;;
  stop)
        if [ -f /var/run/svscan.pid ]; then
          echo -n "Stopping svscan: "
          kill `cat /var/run/svscan.pid`
          svc -dx /var/service/*
          svc -dx /var/service/*/log
          rm -f /var/run/svscan.pid
          rm -f /var/lock/subsys/svscan
        fi
        ;;
  *)
        echo "Usage: $0 {start|stop}"
        exit 1
esac

exit 0

svscanをこのscriptで起動する。

# /usr/local/etc/rc.d/svscan.sh start

svscanは/var/service/に存在するdaemonを起動し続けるように監視している。
そのdaemonのサービスをコントロールするにはsvcを使用する。
使い方は、

   svc opts services
で、tinydnsをupしておくにはには
# svc -u /etc/tinydns
dnscacheをdownさせるには
# svc -d /etc/dnscache	
とする。 tinydnsの設定を変更したときは、
# svc -t /etc/tinydns
オプションの説明: 

*	-u: Up. サービスが動いていなければ、開始する。 もしサービスが止まったら、再開させる。 
*	-d: Down. サービスが動いていれば、TERMシグナルを送り、それから CONT シグナルを送る。 サービスが止まったら、再開させない。 
*	-o: Once. サービスが動いていなければ、開始する。 止まったら、再開させない。 
*	-p: Pause. サービスに STOP シグナルを送る。 
*	-c: Continue. サービスに CONT シグナルを送る。 
*	-h: Hangup. サービスに HUP シグナルを送る。 
*	-a: Alarm. サービスに ALRM シグナルを送る。 
*	-i: Interrupt. サービスに INT シグナルを送る。 
*	-t: Terminate. サービスに TERM シグナルを送る。 
*	-k: Kill. サービスに KILL シグナルを送る。 
*	-x: Exit. サービスが止まったら、直ちにsuperviseも終了する。 

[ Nob's Home | FreeBSD ]
nob@makioka.y-min.or.jp