1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
#!/bin/sh
### BEGIN INIT INFO
# Provides: qpsmtpd
# Required-Start: $local_fs $remote_fs $network $named
# Should-Start: $syslog $mail-transport-agent clamav-daemon spamassassin
# Required-Stop: $local_fs $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop the qpsmtpd SMTP daemon
# Description: Qpsmtpd is an SMTP daemon which acts as a frontend
# for a mail transport system.
### END INIT INFO
set -e
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PORT="25"
RUNAS="qpsmtpd"
NICE=""
INTERFACES=""
LISTEN=""
ENABLED="false"
SERVER="forkserver"
EXTRA_ARGS=""
[ -f "/etc/qpsmtpd/debconf-settings" ] && . "/etc/qpsmtpd/debconf-settings"
[ -x "/usr/bin/qpsmtpd-$SERVER" ] || exit 0
[ "$ENABLED" = "true" -o "$ENABLED" = "1" ] || exit 0
if [ "x$INTERFACES" != "x" ] ; then
LISTEN=`echo "$INTERFACES" | \
perl -pe 's/(\S+)/--listen-address $1/g'`
fi
qpsmtpd_start()
{
# a bug in 0.31.1 caused logfiles to be created as root, rather
# than as the $RUNAS user
if [ "x$RUNAS" != "x" -a \
"`stat --format '%u' /var/log/qpsmtpd/qpsmtpd.log 2>/dev/null`" \
= "0" ] ; then
chown "$RUNAS" /var/log/qpsmtpd/qpsmtpd.log
fi
export QPSMTPD_CONFIG="/etc/qpsmtpd"
if [ ! -d "/var/run/qpsmtpd" ] ; then
mkdir -p /var/run/qpsmtpd
chown $RUNAS:adm /var/run/qpsmtpd
chmod 2755 /var/run/qpsmtpd
fi
start-stop-daemon --quiet --start \
--exec /usr/bin/qpsmtpd-$SERVER -- \
--port $PORT --user $RUNAS \
--pid-file /var/run/qpsmtpd/qpsmtpd.pid \
$LISTEN --detach $EXTRA_ARGS
}
qpsmtpd_stop()
{
# qpsmtpd is a perl script, and s-s-d's --exec option
# would look at the interpreter path rather than the script. More
# seriously, however, --exec compares devices/inodes rather than
# executable paths, so --exec will break every time the perl package
# is upgraded (see Debian Bug#337942). So, --exec isn't used at all.
start-stop-daemon --quiet --stop --retry 4 --oknodo \
--pidfile /var/run/qpsmtpd/qpsmtpd.pid \
--user "$RUNAS"
}
qpsmtpd_status()
{
echo -n "Checking status of qpsmtpd: "
if [ -f "/var/run/qpsmtpd/qpsmtpd.pid" ] ; then
if start-stop-daemon --quiet --stop --signal 0 \
--pidfile /var/run/qpsmtpd/qpsmtpd.pid ; then
echo "running"
exit 0
else
echo "not running, stale PID file"
exit 1
fi
else
echo "not running"
exit 3
fi
}
case "$1" in
start)
echo -n "Starting qpsmtpd: "
qpsmtpd_start
echo "qpsmtpd-$SERVER."
;;
stop)
echo -n "Stopping qpsmtpd: "
qpsmtpd_stop
echo "qpsmtpd-$SERVER."
;;
restart|reload|force-reload)
qpsmtpd_stop
qpsmtpd_start
;;
status)
qpsmtpd_status
;;
*)
echo "usage: $0 {start|stop|restart|reload|force-reload|status}"
exit 1
;;
esac
exit 0
|