最近のinitでdaemontoolsを使う

久しぶりに Fedora11 のインストールなんぞをしてみて、便利なので daemontools を入れようとしたらハマったのでメモ。
daemontoolsの起動は /etc/inittab に↓こんな風に書くことにより init から起動してもらってたんだが、確かに追記されてるのに起動してくれない。

SV:123456:respawn:/command/svscanboot

なんでだろ?とよく見たら、というか inittab を開いた瞬間に気がついたんだが、inittab に本来あるべき設定が全然ない。initdefault の設定しかないんでやンの。
inittab の頭に書いてあるコメントを読んでみると

inittab はもはやデフォルトのランレベルの指定にしか使われなくなったよ。
それ以外の機能は、inittab に書く替わりに upstart という仕組みが使われるようになったんだ。
その設定ファイルは /etc/event.d/ (CentOSだと/etc/init/*.conf) にあるからそっちを見てね。

ってことのようだ。なるほど、どうりで動かないわけだ…。


そんなわけで inittab に追記された無駄な設定を削除して、替わりに /etc/event.d/svscan (CentOSの場合/etc/init/svscan.conf)ってファイルを以下のような内容で作成したら無事動いた。

# svscan - daemontools
#
# This service starts daemontools from the point the system is
# started until it is shut down again.

start on runlevel [2345]
stop on shutdown
respawn
exec /command/svscanboot

サーバを再起動しないでこれを反映させるには以下のコマンドでOK

initctl start svscan


Fedora9やCentOS6からinitがupstartを使うようになってたらしい。昔から daemontools を使ってる人は気をつけよう!