- 追加された行はこの色です。
- 削除された行はこの色です。
* qmailをdaemontoolsで起動する [#m75d4359]
qmailは/var/qmailにインストールしてあることとする。qmailの起動だけでなく、ログ管理も行う。
** 前提 [#ed2679b0]
最終的には以下のような2つのrunスクリプトを作ることになる。
/services/qmail/run
/services/qmail/log/run
/service/qmail/run
/service/qmail/log/run
** 設定用のディレクトリを作る [#w788844e]
いったん/var/qmail以下に設定を作る。multilogによるログ管理を行わないならlogディレクトリは不要。stickybitの操作も不要。
mkdir -p /var/qmail/
chmod +t /var/qmail/services/qmail/
/services/qmailディレクトリにstickybitを立てることで、superviseコマンドは/services/qmail/runを実行後、/services/qmail/logに移動してそこのrunスクリプトも実行することになる。
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スクリプトを作成する [#q035465c]
runスクリプトでは、qmailの起動スクリプト(/var/qmail/rc)をキックする。
cat /var/qmail/services/qmali/run
------------------------
*** /var/qmail/service/qmali/run [#w177e56a]
qmailの起動スクリプト(/var/qmail/rc)をキックする。
#!/bin/sh
PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin
exec /var/qmail/rc
ログ管理はmultilogで行うので、qmailの起動スクリプトにはsploggerの指定を省くこと。
cat /var/qmail/rc
--------------------
*** /var/qmail/service/qmail/log/run [#c5aa026d]
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 [#e6bb1a89]
ログ管理はmultilogで行うのでsploggerの指定は省く。
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Mailbox
** パーミッションの調整など [#c19b3d05]
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
** 監視対象に追加 [#a10c2446]
/service以下にシムリンクを張る。
ln -s /var/qmail/service/qmail /service/qmail
** 起動を確認 [#i23ebe5f]
svstat /service/qmail