daemontoolsでNginx/MySQL/Squidなどを監視
Debian系のOSでaptを利用してNginx/MySQL/Squidなどをインストールした場合、通常はinit.dで起動するように設定されます。しかし、ここでは死活監視を行ってくれる便利なdaemontoolsで起動するように設定してみます。
設定のポイント
daemontoolsでプロセスを監視するときのポイントは、プロセスをフォアグラウンドで動作させることです。デーモンとして動作させてしまうと、対象のプロセスが監視を行っているsvscanから切り離されてしまい、正しく動作しなくなってしまいます。
今回設定を行ったソフトウェアにあるように、大抵のソフトウェアにはデーモン化せずに起動するオプションや設定が用意されているので、それを利用すればOKです。
自作プログラムの場合は、特に深く考えず無限ループになるようなコードを書けばフォアグラウンドで動作していることになります。
Nginxの設定
/etc/service/nginx/run
daemonディレクティブでoffを指定することで、Nginxをフォアグラウンドで動作させています。
MySQLの設定
MySQLはデフォルトでmysqld_safeが監視を行っているため、特にdaemontoolsで監視する必要はないそうです。
/etc/service/mysql/run
Squidの設定
/etc/service/squid/run
-Nオプションを指定することで、Squidをフォアグラウンドで動作させています。
参考
追記
- 2010/07/23
- mysqld_safeについて追記