qmailをdaemontoolsで起動する

qmailは/var/qmailにインストールしてあることとする。qmailの起動だけでなく、ログ管理も行う。

前提

最終的には以下のような2つのrunスクリプトを作ることになる。

 /service/qmail/run
 /service/qmail/log/run

設定用のディレクトリを作る

いったん/var/qmail以下に設定を作る。multilogによるログ管理を行わないならlogディレクトリは不要。stickybitの操作も不要。

 mkdir -p /var/qmail/service/qmail/log
 chmod +t /var/qmail/service/qmail/

/service/qmailディレクトリにstickybitを立てることで、superviseコマンドは/service/qmail/runを実行後、/service/qmail/logに移動してそこのrunスクリプトも実行することになる。

runスクリプトを作成する

/var/qmail/service/qmali/run

qmailの起動スクリプト(/var/qmail/rc)をキックする。

 #!/bin/sh
 PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
 exec /var/qmail/rc

/var/qmail/service/qmail/log/run

setuidgidでqmaillユーザ権限でログを作る。tはタイムスタンプ行頭につける。ログは勝手にロテートされる。細かく指定したい場合は、http://www.emaillab.org/djb/tools/daemontools/multilog.htmlを参考にする。

 #!/bin/sh
 exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail

/var/qmail/rc

ログ管理はmultilogで行うのでsploggerの指定は省く。

 #!/bin/sh
 exec env - PATH="/var/qmail/bin:$PATH" \
 qmail-start ./Mailbox

パーミッションの調整など

 chmod a+x /var/qmail/service/qmail/run
 chmod a+x /var/qmail/service/qmail/log/run
 chmod a+x/var/qmail/rc
 mkdir /var/log/qmail
 chown qmaill:nofiles /var/log/qmail
 chmod 700 /var/log/qmail

監視対象に追加

/service以下にシムリンクを張る。

 ln -s /var/qmail/service/qmail /service/qmail

起動を確認

 svstat /service/qmail

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

Last-modified: 2007-08-29 (水) 09:27:34