最強のMTA!qmail を使おう!(その8)

daemontoolsから起動する

djbdnsが、参考になるが、daemontoolsから起動する場合には、まず、ディレクトリーを1つ作成し、
tビットを立てておく。
私は、/var/qmail/service に
qmail-send
qmail-smtpd
qmail-pop3d
を作成した。
cd /var/qmail
mkdir service
cd service
mkdir qmail-send qmail-smtpd qmail-pop3d
chmod +t qmail-*
それぞれの中にさらに、log env log の中にenvを作る。
cd qmail-send
mkdir env
mkdir -p log/env
cd ../qmail-smtpd
mkdir env
mkdir -p log/env
cd ../qmail-pop3d
mkdir env
mkdir -p log/env
そして、それぞれのディレクトリーの中と、その中のlogの中に、runという名前で起動スクリプトを書く。
アクセス権は、chmod 700 run とすること。
私は、以下のようにスクリプトを作成した。

qmail-send/run (dot-forwardを使用しない場合は qmail-start ./Maildir/)

#!/bin/sh
#
exec envdir ./env softlimit -d120000000 qmail-start '|dot-forward .forward
./Maildir/'

qmail-send/log/run

#!/bin/sh
#
exec setuidgid qmaill envdir ./env softlimit -d300000 \
multilog t s1000000 n100 /var/log/qmail/send

qmail-smtpd/run

#!/bin/sh
#
exec envdir ./env softlimit -d4000000 envuidgid qmaild \
tcpserver -v -R -U -x /etc/tcp.smtp.cdb 0 smtp qmail-smtpd 2>&1

qmail-smtpd/log/run

#!/bin/sh
#
exec setuidgid qmaill envdir ./env softlimit -d300000 \
multilog t s1000000 n100 /var/log/qmail/smtpd

qmail-pop3d/run

#!/bin/sh
#
exec envdir ./env softlimit -d2000000 tcpserver -v -R -H 0 pop3 \
qmail-popup ml.hasiru.net checkpassword qmail-pop3d Maildir 2>&1

qmail-pop3d/log/run

#!/bin/sh
#
exec setuidgid qmaill envdir ./env softlimit -d300000 \
multilog t s1000000 n100 /var/log/qmail/pop3d

そして、それぞれのenvの中には、起動時に設定したい環境変数を、ファイル名と内容で、設定する。
qmailは、環境変数を設定することで、いろいろな事が出来るので、便利だ。
qmail-send/env/PATH 内容:/var/qmail/bin:/usr/local/bin
qmail-send/log/env/PATH 内容:/usr/local/bin
qmail-smtpd/env/PATH 内容:/var/qmail/bin:/usr/local/bin
qmail-smtpd/log/env/PATH 内容:/usr/local/bin
qmail-pop3d/env/PATH 内容:/bin:/usr/bin:/usr/local/bin:/var/qmail/bin
qmail-pop3d/log/env/PATH 内容:/usr/local/bin
注意:$PATHなどは、無効である。
ログファイルを格納するためのディレクトリーも用意する。所有者は、qmaillとする。
cd /var/log
mkdir qmail
cd qmail
mkdir send smtpd pop3d
chown qmaill:nofiles *

さて、起動するのは、djbdnsと同様。 /serviceにシンボリックリンクを作る。
ln -s /var/qmail/service/qmail-send /service/.
ln -s /var/qmail/service/qmail-smtpd /service/.
ln -s /var/qmail/service/qmail-pop3d /service/.
これで、5秒後に起動する。

daemontoolsでは、サービスの停止、起動、再起動が、簡単にできる。
ただし、logのサービスも一緒に指定する必要がある。
面倒なので、サービスディレクトリーに入って操作する。
停止操作例
cd /service/qmail-send
svc -d . log
起動操作例
cd /service/qmail-smtpd
svc -u . log
再起動操作例
cd /service/qmail-pop3d
svc -t . log

ちなみに、2度と起動したくない場合は、(pop3dの場合)
rm /service/qmail-pop3d
cd /var/qmail/service/qmail-pop3d
svc -dx . log
の様にする。

以上で、daemontoolsが、うまく使いこなせると思う。

前へ  次へ