2006年12月04日
Postgreyのman眺めた。
$ man postgrey
-d, --daemonize run in the background
オプションを指定しない限りはforegroundと言う事のようだ。
つまり、daemontoolsでの管理が容易だ。
/etc/init.d/postgreyを参考に作ったrunスクリプト。
これで/etc/init.d/postgreyと同様に/etc/default/postgreyを呼び出せる。
役割分担。何が分担されているかと言うと設定項目とプロセス管理。
・設定項目は/etc/default/postgrey
・プロセスの管理は/service/postgrey/run
Debianの起動スクリプトは良く出来てるねぇ。
#!/bin/sh
exec 2>&1
sleep 3
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/postgrey
NAME=postgrey
DESC="postfix greylisting daemon"
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
if [ -z "$POSTGREY_TEXT" ]; then
POSTGREY_TEXT_OPT=""
else
POSTGREY_TEXT_OPT="--greylist-text=$POSTGREY_TEXT"
fi
exec $DAEMON $POSTGREY_OPTS "$POSTGREY_TEXT_OPT"
さて、上手く動くかな。
$ sudo mv /service/postgrey /service/.postgrey
$ sudo svstat /service/postgrey
/service/postgrey: up (pid 3000) 11 seconds
$ ps awx | egrep '[p]ostgrey'
2891 ? S 0:00 supervise postgrey
3000 ? S 0:00 /usr/sbin/postgrey --inet=127.0.0.1:60000
上手く行った。
$ man postgrey
-d, --daemonize run in the background
オプションを指定しない限りはforegroundと言う事のようだ。
つまり、daemontoolsでの管理が容易だ。
/etc/init.d/postgreyを参考に作ったrunスクリプト。
これで/etc/init.d/postgreyと同様に/etc/default/postgreyを呼び出せる。
役割分担。何が分担されているかと言うと設定項目とプロセス管理。
・設定項目は/etc/default/postgrey
・プロセスの管理は/service/postgrey/run
Debianの起動スクリプトは良く出来てるねぇ。
#!/bin/sh
exec 2>&1
sleep 3
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/postgrey
NAME=postgrey
DESC="postfix greylisting daemon"
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
. /etc/default/$NAME
fi
if [ -z "$POSTGREY_TEXT" ]; then
POSTGREY_TEXT_OPT=""
else
POSTGREY_TEXT_OPT="--greylist-text=$POSTGREY_TEXT"
fi
exec $DAEMON $POSTGREY_OPTS "$POSTGREY_TEXT_OPT"
さて、上手く動くかな。
$ sudo mv /service/postgrey /service/.postgrey
$ sudo svstat /service/postgrey
/service/postgrey: up (pid 3000) 11 seconds
$ ps awx | egrep '[p]ostgrey'
2891 ? S 0:00 supervise postgrey
3000 ? S 0:00 /usr/sbin/postgrey --inet=127.0.0.1:60000
上手く行った。