自動起動の準備
元々FreeBSDの初期インストール時にbindがインストールされていたためBIND用ユーザーが存在するか確認
# grep bind /etc/passwd
bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin
# grep bind /etc/group
bind:*:53:
自動起動用にrc.confに下記を追加
# ee /etc/rc.conf
named_enable=”YES”
named_program=”/usr/local/sbin/named”
named_flags=”-u bind”
named_pidfile=”/var/run/named/named.pid”
pidファイルの場所を変更(記述なしだと/var/run/直下)
# ee /etc/named.conf
pid-file “/var/run/named/named.pid”;
既存bindの残骸を削除
# rm -rf dev
# rm -rf etc
# rm -rf var
# rm -rf /etc/namedb
BINDはrootではなく専用ユーザー(bind)で使用するためパーミッションの問題を解決する
# mkdir /var/run/named
# chown bind:bind /var/run/named
これで行けるかと思ったら、全く起動の気配なし、さらに/etc/rc.d/namedを発見。
これは既存BINDの物だった為削除して作り直し
#!/bin/sh
case “$1” in
‘start’)
/usr/local/sbin/named -u bind
;;
‘stop’)
kill `cat /var/run/named/named.pid`
rm -f /var/run/named/named.pid
;;
*)
echo “Usage: $0 { start | stop }”
exit 1
;;
esac
exit 0
ここで何度rebootしてもbindが起動しない。/var/log/messages見ても起動かけた形跡すらなし。
このBINDはソースコンパイル物なので/usr/local/etc/rc.d/named.shとしての導入が正解でした。
/etc/rc.d/namedだと何度試みても起動しないのでハマった。この辺の仕組みが良くわからないなぁ。
ここで追試としてrc.confでNOにしてrebootしたらどうなるのだろうか?
# ps -aux | grep named
bind 504 0.0 2.6 4076 3224 ?? Is 4:05AM 0:00.03 /usr/local/sbin/named -u
root 556 0.0 0.2 348 228 p0 R+ 4:06AM 0:00.00 grep named
起動しましたー!!!えぇ!?何それ!?rc.confの意味無さすぎ…。