feel6.jpなんかは DTCP クライアントでIPv6トンネリング接続を行なう。 DTCPクライアントがたまに切れることがある。あるいは、ルーティングテーブル が消えて外と通信できなくなったりする。監視して繋ぎ直したい。そんなときは、
ぽんっ
daemontoolsじゃな。
PPPoEをリセットしたりしてIP的に切れたときはDTCPがすぐに
繋げないことがある。ので、DTCP接続に失敗したらしばらく休憩するように
runスクリプトを工夫。
/service/dtcp/run
#!/bin/sh PATH=/usr/local/bin:/sbin:/usr/bin:/bin ifconfig インターフェース inet6 v6アドレス prefixlen 64 if [ -f brake ]; then sleep 10 rm -f brake fi touch brake (sleep 10; rm -f brake)& exec 2>&1 exec env - PATH=$PATH \ ruby dtcpc.rb -n -s 25 -t network -u yuuji -i gif1 DTCPサーバ
まれにだが、dtcpが生きていてもv6的に切れる場合に備え
監視して、切れてたら dtcpc を起動し直すスクリプト。
/service/dtcp-keep/run
#!/bin/sh
if=gif1
# /service/dtcpが上がるのをまつ
sleep 20
target=`ifconfig $if | awk '/tunnel inet/{print $NF}'`
echo $target
pcheck () {
# 念のため3回ping。1回でも成功すれば良いとする。
ping -c 1 -w 2 $target || \
ping -c 1 -w 2 $target || \
ping -c 1 -w 2 $target
}
while pcheck > /dev/null 2>&1
do
sleep 20
done
svc -t /service/dtcp