[FreeBSD10] rc の起動順序変更

Pocket

OSを再起動すると自サイトの名前が引けなくなるという現象が発生しているのは
知ってたが、再起動時に手動でBINDを再起動して対処してた。めったに再起動し
ないし。たまに知らないうちに再起動してて、名前が引けないまま放置されてる
こともあったりしたのは内緒。

/var/log/messages 抜粋:

Sep 27 17:48:14 n54l named[655]: creating IPv4 interface ng0 failed; 
interface ignored

ng0 はPPPoE の接続が確立すると生成される仮想インターフェイスなので、BIND
起動時に ng0 が見つからないということは、PPPoE接続がまだ確立されていない
ことを意味する。要するにサービス起動順序の問題。”service -e” で確認でき
る。

# service -e (抜粋)
/etc/rc.d/hostid
/etc/rc.d/hostid_save
/etc/rc.d/cleanvar
/etc/rc.d/ip6addrctl
/etc/rc.d/devd
/etc/rc.d/pflog
/etc/rc.d/pf
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/usr/local/etc/rc.d/named
/etc/rc.d/dmesg
/etc/rc.d/virecover
/usr/local/etc/rc.d/mpd5

これは named(BIND) と mpd5(PPPoe) の起動順序を入れ替えれば解決する。めん
どくさいので放置していたが、なんとなく気が向いたので直してみた。
解決策は単純で、namedの起動スクリプトの REQUIRE: 行に mpd5 を加えるだけ。
これにより、named の起動条件に「mpd5が既に起動していること」が加わる。

# vi /usr/local/etc/rc.d/named
[/usr/local/etc/rc.d/named]
7c7
< # REQUIRE: NETWORKING ldconfig syslogd
---
> # REQUIRE: NETWORKING ldconfig syslogd mpd5

# service -e (抜粋)
/etc/rc.d/hostid
/etc/rc.d/hostid_save
/etc/rc.d/cleanvar
/etc/rc.d/ip6addrctl
/etc/rc.d/devd
/etc/rc.d/pflog
/etc/rc.d/pf
/etc/rc.d/newsyslog
/etc/rc.d/syslogd
/usr/local/etc/rc.d/mpd5
/usr/local/etc/rc.d/named
/etc/rc.d/dmesg
/etc/rc.d/virecover

もっと早くやれ、って話ですな。

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン