この記事は最終更新日より 1 年以上経過しています。
画像やリンクが無効になっている可能性もあるのでご了承下さい。
画像やリンクが無効になっている可能性もあるのでご了承下さい。
自宅サーバーには BIND9 を入れて内向けの DNS を立てている。
いちいち ISP の DNS にクエリー出してその戻りを参照しにいくのに
外側に出て行くのはパフォーマンス的にももったいない物がある。
その点、自宅に DNS を立てておけば LAN 内にあるサーバーへ
アクセスするので速度は速い。そして出したクエリーの結果は
暫くキャッシュされるので ISP の DNS まで行くこともなく、
Resolver は自前 DNS からの応答を引っ張って各ソフトが参照するだけ。
そんなアレで、インストールだけしていた BIND さんな訳だが、
サーバー再起動時に自動実行するようスクリプトを書いていなかった。
init スクリプトですな。
Linux だけど シェルは bash でなくて sh で書きました。
中身はとーーーてもきちゃないものだけど、ちゃんと動くので良しとする。
実はというか俺、シェル苦手です(苦笑
書いた init スクリプトでもはっ付けておくかなと。
#!/bin/sh
#
# named init scripts
# 2006/04/26
# Set variables.
PID="/var/named/named.pid"
BIN="/usr/local/sbin/named"
USR="named"
start() {
printf "Starting BIND DNS System: "
if [ -f ${PID} ]; then
printf "Failedn"
else
${BIN} -u ${USR}
printf "Startn"
fi
}
stop() {
printf "Stopping BIND DNS System: "
if [ -f ${PID} ]; then
kill -TERM `cat ${PID}`
printf "Stopn"
[ -f ${PID} ] && rm -f ${PID}
else
printf "Not running BINDn"
exit 1
fi
}
restart() {
printf "Restarting BIND DNS System: "
if [ -f ${PID} ]; then
kill -HUP `cat ${PID}`
printf "Restartedn"
else
printf "Not running BINDn"
exit 1
fi
}
status() {
if [ -f ${PID} ]; then
printf "DNS System available.n"
else
printf "DNS System do not available.n"
fi
}
# Main
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
printf "Usage: $0 {start|stop|restart|status}n"
exit 1
esac
exit $?
コメント