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