#pginfo(1 QEX8lOaVRJk admin 3 none none 3 all all 1 cHvh03MizfQ admin 1 ) daemontoolsのインストール
qmailとよくセットで利用される アプリのサービス化とmultilogが利用できる
daemontoolにはメリットがある - syslogと異なりソケットの代わりにパイプを使用するため、ログが確実に取れる - ログの容量を監視してくれる。ログのローテーションは日付ではなく、ある一定容量に達したかどうかによって行われる - サービスの追加・削除が簡単にできる。システム起動時に自動的に開始するか否かも簡単に指定できる - サービスを監視するためのロックファイルを作らなくて済む - デーモンのPIDを直接調べなくてもシグナルが送れる。daemontoolsを使って走らせた各デーモンはPIDではなく名前で指定でき、複数のデーモンにシグナルを送ることも可能 - 起動するデーモンごとにlimitがかけられる。これにより、メモリ使用量やユーザー権限を制限できる
参考 http://cr.yp.to/daemontools/install.html
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
mkdir -p /package chmod 1755 /package cd /package
tar -zvxpf /usr/local/src/qmail/daemontools-0.76.tar.gz cd admin ※patchインストール cp /usr/local/src/qmail/daemontools-0.76.errno.patch ./ patch -p0 < daemontools-0.76.errno.patch cd daemontools-0.76 package/install
作成されるディレクトリ /service /command /package/admin/daemontools/command以下に実行ファイル /command以下に上記のシンボリックリンク /usr/local/bin以下に上記のシンボリックリンク /etc/inittabの末尾に以下が追記 SV:123456:respawn:/command/svscanboot
※inittabの変更を有効にするにはkill -HUP 1が必要 installスクリプトで実行済み
日付処理の確認 左辺と右辺が同じならOK # cd /command/ # date | ./tai64n | ./tai64nlocal # date | sh -c './multilog t e 2>&1' | ./tai64nlocal
/serviceの下のディレクトリを5秒おきに監視する サブディレクトリ内のrunスクリプトを実行する
/var/qmail/service以下で設定を行い、/service以下にシンボリックリンクをはる
●qmailの置き換え mkdir -p /var/qmail/services/qmail/log chmod +t /var/qmail/services/qmail
vi /var/qmail/services/qmail/run #!/bin/sh PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin exec /var/qmail/rc
vi /var/qmail/services/qmail/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmaill /usr/local/bin/multilog t /var/log/qmail
chmod +x /var/qmail/services/qmail/run chmod +x /var/qmail/services/qmail/log/run
/var/qmail/rc内のsploggerは削除 vi /var/qmail/rc #!/bin/sh exec env - PATH=“/var/qmail/bin:$PATH” \ qmail-start ./Maildir/
※multilogの設定変更 # multilog t sサイズ nファイル数 /var/log/qmail ファイルサイズは4096〜16777215の間で指定します。 なお、ログを意味のないところで切らないために、最大ファイルサイズの最後の2000bytes以内に改行コードがあった場合にのみ、 ログファイルのローテーションを行います 参考 http://www.emaillab.org/djb/tools/daemontools/multilog.html
ログ出力先設定、パーミッション設定 mkdir /var/log/qmail chown qmaill:nofiles /var/log/qmail chmod 700 /var/log/qmail
daemontoolsへの登録 ln -s /var/qmail/services/qmail /service/qmail
起動確認 # svstat /service/qmail # svstat /service/qmail/log/
●qmail-smtpdの置き換え mkdir -p /var/qmail/services/smtpd/log chmod +t /var/qmail/services/smtpd
vi /var/qmail/services/smtpd/run #!/bin/sh PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin #exec tcpserver -v -u[qmaildのUID] -g[nofilesのGID]-x /etc/tcp.smtp.cdb \ #0 smtp /var/qmail/bin/qmail-smtpd 2>&1 # vpopmail exec /usr/local/bin/tcpserver -H -R -l `hostname` -v -x \ /home/vpopmail/etc/tcp.smtp.cdb -u `id -u vpopmail` -g `id -g vpopmail` \ 0 smtp /var/qmail/bin/qmail-smtpd `hostname` /home/vpopmail/bin/vchkpw /bin/true 2>&1
vi /var/qmail/services/smtpd/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmails /usr/local/bin/multilog t /var/log/smtpd
chmod +x /var/qmail/services/smtpd/run chmod +x /var/qmail/services/smtpd/log/run
mkdir /var/log/smtpd chown qmails:nofiles /var/log/smtpd chmod 700 /var/log/smtpd
ln -s /var/qmail/services/smtpd /service/smtpd
起動確認 # svstat /service/smtpd/ # svstat /service/smtpd/log/
●qmail-pop3dの置き換え mkdir -p /var/qmail/services/pop3d/log chmod +t /var/qmail/services/pop3d
vi /var/qmail/services/pop3d/run #!/bin/sh PATH=/var/qmail/bin:/usr/local/bin:/bin:/usr/bin #exec tcpserver -v 0 pop3 /var/qmail/bin/qmail-popup imd01 \ #/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir 2>&1 # vpopmail exec /usr/local/bin/tcpserver -H -R -l `hostname` -v 0 pop3 \ /var/qmail/bin/qmail-popup `hostname` /home/vpopmail/bin/vchkpw \ /var/qmail/bin/qmail-pop3d Maildir 2>&1
vi /var/qmail/services/pop3d/log/run #!/bin/sh exec /usr/local/bin/setuidgid qmailp /usr/local/bin/multilog t /var/log/pop3d
chmod +x /var/qmail/services/pop3d/run chmod +x /var/qmail/services/pop3d/log/run mkdir /var/log/pop3d chown qmailp:nofiles /var/log/pop3d chmod 700 /var/log/pop3d
ln -s /var/qmail/services/pop3d /service/pop3d # svstat /service/pop3d # svstat /service/pop3d/log
プロセスの一時停止 # svc -d /service/サービス ※本体とmultilog側を停止するのを忘れないようにする
プロセスの起動 # svc -u /service/サービス # svc -u /service/* ←全てのサービス対象
サービスが起動しないようにする(svscan起動時のみ) # touch /service/サービス/down
プロセスの終了 # svc -x /service/.pop3d/log # svc -x /service/.pop3d
chkconfig qmaild off chkconfig –del qmaild rm -f /etc/rc.d/init.d/qmaild
ログ確認 # tail -f /var/log/qmail/current | /command/tai64nlocal
*/ [#z8535e0f]