[daemontoolsのインストール]
daemontoolsは、D.J.Bernstein氏によって作成された各種デーモンの
起動管理及びログ収集を行うツール群です。
/usr/local/src以下に
daemontools-***.tar.gz
がダウンロードされていると思いますので、展開しインストールを行いましょう。
ダウンロードされたファイルが、daemontools-0.70.tar.gzである場合
# cd /usr/local/src
# tar zxvf daemontools-***.tar.gz
# cd daemontools-***
# make
# make setup check
でインストールは完了です。
ダウンロードされたファイルがdaemontools-0.76.tar.gzである場合、
# cd /usr/local/src
# tar zxvf daemontools-***.tar.gz
# cd admin/daemontools-***
# package/install
でインストールは完了です。
[Redhat Linux 9の場合](※必要ない人は読み飛ばしてください)
Redhat Linux 9では、glibcのアップグレードに伴い、そのままではコンパイルできなくなっています。
daemontools-0.76の場合、解凍したdaemontools-***内のsrcディレクトリに移動し、その中にあるerror.hを開き、ファイル先頭の次の部分を表示してください。
/*---
#ifndef ERROR_H
#define ERROR_H
extern int errno;
(以下省略)
---*/
上記ファイル中
extern int errno
の部分のせいでエラーが起きています。
そこで、上記ファイルextern int errno;の部分を次のように書き換えてください
/*---
#ifndef ERROR_H
#define ERROR_H
#include <errno.h>
(以下省略)
---*/
以上の修正が終わったら、daemontools-***ディレクトリに戻り、インストールを行ってください。
以上の作業をすることにより、Redhat Linux9でもインストールが可能になります。
daemontoolsのバージョンが0.70である場合
# ./rts > rts.out
# cmp rts.out rts.exp
でテストを行います。何も出力されなければインストールは成功です。
バージョンが0.76の場合、上記コマンドがないようですので
インストール時に上記コマンドが実行されている気がします。
更に、上記に加えタイムスタンプの確認を行います。
下記コマンドを実行してください。
0.76では、commandというディレクトリに移動すれば下記コマンドは存在するはずです。
出力の左と右で時間が同じであれば問題ありません。
# date | ./tai64n | ./tai64nlocal
# date | sh -c './multilog t e 2>&1' | ./tai64nlocal
0.70では、svscan用にディレクトリを作成する必要があります。
# mkdir /service
# chmod 755 /service
0.76ではインストールの時点で自動作成されるようです。
上記まで作業が進んだらsvscanを起動するための起動スクリプトを作ってみましょう。
まずはLINUXの場合です。
[LINUXの場合]
LINUXの場合には/etc/rc.d/init.dの下にsvscanという起動スクリプトを作りましょう。
(daemontools-0.76の場合、自動的に起動されるので、このファイルを作る必要はありません。)
スクリプトの内容は以下のようにします。
#!/bin/sh # # svscan Start svscan.
# CopyRight: TAKIZAWA Takashi
# chkconfig: 345 99 50
# description: svscan starts and monitors a
collection of services.
# see http://cr.yp.to/daemontools.html
# processname: svscan
# pidfile: /var/run/svscan.pid
# service directory: /service
# Source function library.
. /etc/rc.d/init.d/functions
export PATH="/usr/local/bin:$PATH"
SVDIR=/service
case "$1" in
start)
echo -n "Starting svscan: "
exec env - PATH="/usr/local/bin:/usr/bin:/bin"
SVDIR="$SVDIR" \
csh -cf 'svscan $SVDIR &; echo $! > /var/run/svscan.pid'
RETVAL=$? # Sorry, I don't catch exit code
of svscan.
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/svscan
;;
stop)
echo -n "Stopping svscan: "
killproc svscan
RETVAL=$?
svc -dx $SVDIR/*
svc -dx $SVDIR/*/log
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/svscan
;;
status)
status svscan
RETVAL=$?
;;
restart|reload)
$0 stop
$0 start
RETVAL=$?
;;
*)
echo "Usage: $0 {start|stop|status|restart|reload}"
exit 1
esac
exit $RETVAL
上記のようにすることで、
/etc/rc.d/init.d/svscan start:起動
/etc/rc.d/init.d/svscan stop:停止
/etc/rc.d/init.d/svscan restart:再起動
などが可能になります。
[FreeBSDの場合]
FreeBSDでは/etc/rc.d/init.dのようなフォルダは存在しないようです。
daemontools HOW-TO:
http://www.emaillab.org/djb/daemontools/daemontools-howto.htmlや
daemontoolsに関するマニュアルの邦訳である
http://www.emaillab.org/djb/tools/daemontools/svscan.html#boot
によれば、BSD形式の起動スクリプトは
BSD システム上では、
env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin
csh -cf 'svscan /service &'
を /etc/rc.local に加え、リブートしてください。
だそうですので、/etc/rc.localに上記を追加しましょう。
なお、daemontools-0.76では、インストール時点で
csh -cf '/command/svscanboot &'
のような記述が、rc.localに追加されるようです。
さて、上記作業が終わったらsvscanを起動してみましょう。
[LINUXの場合]
/etc/rc.d/init.d/svscan start
でsvscanが起動されるはずです。
[FreeBSDの場合]
0.70の場合、
# env - PATH=/usr/local/bin:/usr/sbin:/usr/bin:/bin
csh -cf 'svscan /service &
で起動がされると思います。(これはちょっと不明です。)
0.76の場合、
# csh -cf '/command/svscanboot &'
で起動が行われるようです。
# ps aux | grep svscan
とすると
root 62102 0.0 0.3 892 396 p0 S 5:55PM 0:00.01
svscan /service
のようにsvscanが/serviceを監視していることが分かるでしょう。
それでは、smtpやpopをこれによって監視することにしてみましょう。
[共通の設定]
まず、ログ管理ユーザとして「qmaillog」,「smtplog」,「pop3log」を追加することにしましょう。
[LINUX系OSの場合]
# useradd -g qmail -d /var/qmail -s /bin/false
qmaillog
# useradd -g qmail -d /var/qmail -s /bin/false
smtplog
# useradd -g qmail -d /var/qmail -s /bin/false
pop3log
[FreeBSDの場合]
# pw useradd qmaillog -g qmail -d /var/qmail
-s /nonexistent
# pw useradd smtplog -g qmail -d /var/qmail
-s /nonexistent
# pw useradd pop3log-g qmail -d /var/qmail -s
/nonexistent
一応、上記では
qmaillog:「qmail用」
smtplog:「tcpserverによって起動する qmail-smtpd用」
pop3log:「tcpserverによって起動するpop3用」
としました。
qmailを自動起動するために、まず設定用ディレクトリを作成します。
# mkdir /var/qmail/services
# mkdir /var/qmail/services/qmail
# chmod +t /var/qmail/services/qmail
# mkdir /var/qmail/services/qmail/log
$ chown qmaillog:qmail /var/qmail/services/qmail/log
ログをとるためには、設定ディレクトリにスティッキービットが
たっていないといけないようです。
daemontoolsによって起動されるのは、/serviceの中にあるrunと
いう名前のスクリプトです。
そこで、設定ディレクトリ直下(/var/qmail/services/qmail/run)には
サービスの起動ファイル、
ログディレクトリ直下(/var/qmail/services/qmail/log/run)には
ログの起動ファイルをおくことにします。
まず、/var/qmail/services/qmailの下にrunという起動スクリプトを作りましょう。
スクリプトの中身は次のようにします。
ここで、コピーする時には最後に空白などをあけないようにしましょう。
==> /var/qmail/services/qmail/run <==
#!/bin/sh
exec env - PATH="/var/qmail/bin:$PATH" \
qmail-start ./Maildir/ splogger qmail
ログはmultilogというコマンドで取ります。
==> /var/qmail/services/qmail/log/run <==
#!/bin/sh
exec /usr/bin/env - PATH="/usr/local/bin"
\
setuidgid qmaillog multilog t ./main
setuidgidコマンド(daemontools)によって、ログユーザーを qmaillog
にして、
multilogでログを ./main ディレクトリ以下に書き込むという設定になります。
上記二つのファイルをqmaillogの所有にし、chmodで実行権限を
700にしておきましょう。
# chown qmaillog:qmail /var/qmail/services/qmail/run
# chmod 700 /var/qmail/services/qmail/run
# chown qmaillog:qmail /var/qmail/services/qmail/log/run
# chmod 700 /var/qmail/services/qmail/log/run
各種デーモンは、svscanのチェックディレクトリである /service にリンクを
張ることで監視下におけるようになります。
# ln -s /var/qmail/services/qmail /service/qmail
実際に監視を開始する時は、
# svc -u /service/qmail
などとすれば監視が始まるでしょう。
[daemontoolsによるsmtpの起動]
基本的にはqmailのときと同じです。
設定ディレクトリは /var/qmail/services/smtpd、ログユーザーはsmtplog
としています。
# mkdir /var/qmail/services/smtpd
# chmod +t /var/qmail/services/smtpd
# mkdir /var/qmail/services/smtpd/log
# chown smtplog:qmail /var/qmail/services/smtpd/log
/var/qmail/services/smtpd/runとして起動スクリプトを書きましょう。
==> /var/qmail/services/smtpd/run <==
#!/bin/sh
exec /usr/local/bin/tcpserver -v -u qmaildのUID
-g nofilesのGID \
-x /var/qmail/control/tcprules.dat \
0 smtp /var/qmail/bin/qmail-smtpd 2>&1
ログはやはりmultilogで取ります。
==> /var/qmail/services/smtpd/log/run <==
#!/bin/sh
exec /usr/bin/env - PATH="/usr/local/bin"
\
setuidgid smtplog multilog t ./main
上記二つのファイルをsmtplogの所有にし、chmodで実行権限を
700にしておきましょう。
# chown smtplog:qmail /var/qmail/services/smtpd/run
# chmod 700 /var/qmail/services/smtpd/run
# chown smtplog:qmail /var/qmail/services/smtpd/log/run
# chmod 700 /var/qmail/services/smtpd/log/run
各種デーモンは、svscanのチェックディレクトリである /service にリンクを
張ることで監視下におけるようになります。
# ln -s /var/qmail/services/smtpd /service/smtpd
実際に監視を開始する時は、
# svc -u /service/smtpd
などとすれば監視が始まるでしょう。
[daemontoolsによるpopの起動]
やはり基本的にはqmailのときと同じです。
設定ディレクトリは /var/qmail/services/pop3、ログユーザーはpop3log
としています。
# mkdir /var/qmail/services/pop3
# chmod +t /var/qmail/services/pop3
# mkdir /var/qmail/services/pop3/log
# chown pop3log:qmail /var/qmail/services/pop3/log
==> /var/qmail/services/pop3/run <==
#!/bin/sh
exec /usr/local/bin/tcpserver -v 0 pop3 \
/var/qmail/bin/qmail-popup \
自ホストのFQDN /bin/check_apop_pop \
/var/qmail/bin/qmail-pop3d Maildir 2>&1
ログはやはりmultilogで取ります。
==> /var/qmail/services/pop3/log/run <==
#!/bin/sh
exec /usr/bin/env - PATH="/usr/local/bin"
\
setuidgid pop3log multilog t ./main
上記二つのファイルをpop3logの所有にし、chmodで実行権限を
700にしておきましょう。
# chown pop3log:qmail /var/qmail/services/pop3/run
# chmod 700 /var/qmail/services/pop3/run
# chown pop3log:qmail /var/qmail/services/pop3/log/run
# chmod 700 /var/qmail/services/pop3/log/run
各種デーモンは、svscanのチェックディレクトリである /service にリンクを
張ることで監視下におけるようになります。
# ln -s /var/qmail/services/pop3 /service/pop3
実際に監視を開始する時は、
# svc -u /service/pop3
などとすれば監視が始まるでしょう。
5秒以内でにサービスがスタートされるので、psなどで確認しましょう。
以下のようなコマンドでも確認できます。
daemontoolsのマニュアルの邦訳に各コマンドの使用法が書いてあります。
http://www.emaillab.org/djb/tools/daemontools/top.html
# svstat /service/qmail
/service/qmail: up (pid 624) 1215 seconds
# svstat /service/qmail/log
/service/qmail/log: up (pid 629) 1218 seconds
# svstat /service/smtpd
/service/smtpd: up (pid 613) 1223 seconds
# svstat /service/smtpd/log
/service/smtpd/log: up (pid 632) 1225 seconds
# svstat /service/pop3
/service/pop3: up (pid 633) 1232 seconds
# svstat /service/pop3/log
/service/pop3/log: up (pid 636) 1234 seconds
きちんと設定していない場合、0 secondsから1 secondsでの再起動を繰り返します。
以上で設定は終了です。外部からメールなどを送ってテストしてみましょう。
|
qmail
メールサーバの構築Expert UNIX Series
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) qmailのインストールから、設定、運用まで、FreeBSDとLinuxの場合について、あますところなく解説。付属CD‐ROMにはFreeBSD、4.4‐RELEASEとqmailソースを収録。もっとも詳しいqmailの解説書。
内容(「MARC」データベースより) qmailのインストールから、設定、運用まで、FreeBSDとLinuxの場合について解説。付属CD-ROMにはFreeBSD
4.4-Releaseとqmailソースを収録。とても詳しい解説書。 (C) Amazon.co.jp
|
|
SendmailとqmailによるLinuxメールサーバー構築ガイド
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) 本書は主に、LinuxなどのUNIX系OSを使用してメールサーバー、つまりはインターネットメールシステムを構築しようとしているユーザーを対象としている。まずUNIX系OSにおいて一般的なメール転送エージェント、すなわちMTAであるsendmailについて解説している。後半では、最近注目を集めているqmailについて解説している。
内容(「MARC」データベースより) メール転送エージェントのsendmailや、最近注目を集めているqmailを用いて、メールサーバーのシステム構築から運用管理、セキュリティ対策までを自分で作るためのマニュアル。
(C) Amazon.co.jp
|
|
qmailで作る快適メールサーバー―qmailのインストールから活用までを徹底解説
↑ご購入は、こちらからどうぞ。
内容(「BOOK」データベースより) 安全・強固で使いやすいメールサーバー"qmail"の、はじめての完全解説書。次世代標準となったメールサーバーをはじめて完全解説。「Postfix」の解説を同時収録。
内容(「MARC」データベースより) ポストsendmail ナンバー1は、qmailで決まり!
安全・強固で使いやすい、次世代標準となったメールサーバーqmailのはじめての完全解説書。
(C) Amazon.co.jp
|