File: qpsmtpd.init

package info (click to toggle)
qpsmtpd 0.84-9
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 1,376 kB
  • sloc: perl: 8,012; sh: 382; makefile: 61
file content (118 lines) | stat: -rw-r--r-- 2,760 bytes parent folder | download | duplicates (2)
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