* 概要 [#d74f74e4]
- マシンブート時にsvscanコマンドを実行する。
- svscanプロセスは/service以下にディレクトリ(/service/qmail-sendなど)を見つけるとsuperviseプロセスを起動する。
- superviseプロセスは(/service/qmail-send/)runスクリプトを実行され、runスクリプトに書かれたデーモン(qmailやApacheなど)が実行される。
- デーモンが終了(異常終了でも正常終了でも)すると、superviseプロセスはrunスクリプトを再実行する。
- これによりデーモンがなんらかの理由で終了しても、すぐに勝手に再起動することになる。
*** daemontoolsはフォアグラウンドで実行されるプロセス(デーモン)しか制御できない [#k7606f75]
- Apacheのように起動と同時に勝手にバックグラウンドに移行するデーモンは扱えない。(というより、DJBはバックグラウンドに移行するデーモンソフトを悪いデザインと考えている)
- Apacheの場合、daemontools用に-DNO_DETACHというオプションが用意されている。(そういうオプションがないデーモンソフトだった場合、DJBなら自分で一からプログラムを書く)
- この理由のため、runスクリプトで実行するコマンド(デーモン)はexecの引数にして実行する。
** 参考 [#a31ee713]
- http://www.atmarkit.co.jp/flinux/rensai/qmail09/qmail09a.html
- http://www.unixuser.org/~euske/doc/daemontools/
- http://tools.qmail.jp/daemontools/faq/create.html
- http://www.emaillab.org/djb/daemontools/daemontools-howto.html
- 公式:http://cr.yp.to/daemontools.html