おうちのpppは定期的に復活の呪文を唱えるようにしています。ほんとに効果があるのかはよくわかりませんが、今のところは固まる事も無く、ログを見ればこれまでに何度か(OSを再起動した翌日が多い) ppp再起動処理が発動しているようです。ということで、現在会社のサーバは固まるのを回避するためだけに毎朝 cron でリブート(笑)していますから、こちらにも復活の呪文を入れてみました。
なお、前に書いたものはFreeBSD5.1用なので、会社の4.8用にするとこんな感じでしょうか。
#!/bin/shじつはワタクシ、Bシェルの文法をほとんど知らないのでどう書けば美しいのかよくわからないのですが、まぁ動けばよいでしょう。ということで、今日からOSのリブートはやめてppp復活の呪文を実験です。
PIDFILE=/var/run/tun0.pid
HISADDR=/var/log/hisaddr
if [ -f $PIDFILE -a -f $HISADDR ]; then
PID=`cat $PIDFILE`
i=1
ping=-1
while [ $i -le 10 -a $ping -ne 0 ]; do
ping -c 1 `cat $HISADDR` >/dev/null
ping=$?
if [ $ping -ne 0 ]; then
sleep 20
fi
i=`expr $i + 1`
done
if [ $ping -ne 0 ]; then
echo "ppp is down"
sleep 60
echo "send -TERM"
#kill -TERM $PID
sleep 30
ps -p $PID
if [ $? -ne 0 ]; then
echo "send -9"
kill -9 $PID
fi
sleep 180
# /etc/rc.d/ppp-user start
/usr/sbin/ppp -quiet -ddial -nat dti
echo "ppp restarted"
fi
fi
それはそうと、FreeBSD5の /etc/rc.d/なんとか というのはいいですねー。ps(1) で見るとオプションも見えるので止める前に見ればすむのですが、時々見るのを忘れて『なんやったっけ?』状態になるので、とてもありがたいです。
□ 関連記事