最初に、起動と記録に使用する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/tinydnsdnscacheを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も終了する。