daemontools
daemontoolsを使用して、/etc/rc.dとは違う方法でサービスを管理してみる
インストール
tar zxvf daemontools-VERSION.tar.gz
mv admin /opt/daemontools
cd /opt/daemontools/daemontools-VERSION
package/install
これが終わると/etc/inittabの末尾にsvscanbootが追加される
管理するサービスの設定
とりあえずqmailを追加してみる。以下のようなディレクトリ構造を作成
- qmail_home [DIR]
- service [DIR]
- run [FILE]
- log [DIR]
- run [FILE]
上のrunを作成していく
qmail_home/service/runの作成
#!/bin/sh
exec /path/to/qmail/rc &
この際に注意として、rc内にqmailサーバー関連を起動させている場合のsploggerを使っている場合は削除する事
qmail-home/service/log/run
#!/bin/sh
exec /usr/local/bin/setuidgid qmail /usr/local/bin/multilog t /var/log/qmail
権限の設定
chmod +t /path/to/qmail/service/qmail
chmod +x /path/to/qmail/service/qmail/run
chmod +x /path/to/qmail/service/qmail/log/run
リンクを生成
作成したサービス設定をdaemontoolsが使用する/serviceにリンクさせる
ln -s /path/to/qmail/service/qmail /service/qmail
起動・停止できるかテスト
# 起動
svc -u /service/qmail
# 停止
svc -d /service/qmail
# 状態を表示
svstat /service/qmail
小メモ: サービスを自動起動させないようにする
/service/サービス名/downというファイルがあると、再起動時に自動で起動しなくなる