blob: d8da28251dc3c432b7ab0a1b5ee68ee6f1798fe1 (
plain)
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
#!/bin/sh -e
# Start or stop Postfix
#
# LaMont Jones <lamont@debian.org>
# based on sendmail's init.d script
### BEGIN INIT INFO
# Provides: postfix mail-transport-agent
# Required-Start: $local_fs $remote_fs $syslog $named $network $time
# Required-Stop: $local_fs $remote_fs $syslog $named $network
# Should-Start: postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
# Should-Stop: postgresql mysql clamav-daemon postgrey spamassassin saslauthd dovecot
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Postfix Mail Transport Agent
# Description: postfix is a Mail Transport agent
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/postfix
NAME=Postfix
TZ=
unset TZ
test -x $DAEMON && test -f /etc/postfix/main.cf || exit 0
. /lib/lsb/init-functions
#DISTRO=$(lsb_release -is 2>/dev/null || echo Debian)
enabled_instances() {
postmulti -l -a | awk '($3=="y") { print $1}'
}
running() {
INSTANCE="$1"
if [ "X$INSTANCE" = X ]; then
POSTMULTI=""
else
POSTMULTI="postmulti -i $INSTANCE -x "
fi
POSTCONF="${POSTMULTI} postconf"
daemon_directory=$($POSTCONF -hx daemon_directory 2>/dev/null || echo /usr/lib/postfix/sbin)
if ! ${POSTMULTI} $daemon_directory/master -t 2>/dev/null ; then
echo y
fi
}
case "$1" in
start)
log_daemon_msg "Starting Postfix Mail Transport Agent" postfix
RET=0
# for all instances that are not already running, handle chroot setup if needed, and start
for INSTANCE in $(enabled_instances); do
RUNNING=$(running $INSTANCE)
if [ "X$RUNNING" = X ]; then
/usr/lib/postfix/configure-instance.sh $INSTANCE
CMD="/usr/sbin/postmulti -- -i $INSTANCE -x ${DAEMON}"
if ! start-stop-daemon --start --exec $CMD quiet-quick-start; then
RET=1
fi
fi
done
log_end_msg $RET
;;
stop)
log_daemon_msg "Stopping Postfix Mail Transport Agent" postfix
RET=0
# for all instances that are not already running, handle chroot setup if needed, and start
for INSTANCE in $(enabled_instances); do
RUNNING=$(running $INSTANCE)
if [ "X$RUNNING" != X ]; then
CMD="/usr/sbin/postmulti -i $INSTANCE -x ${DAEMON}"
if ! ${CMD} quiet-stop; then
RET=1
fi
fi
done
log_end_msg $RET
;;
restart)
$0 stop
$0 start
;;
force-reload|reload)
log_action_begin_msg "Reloading Postfix configuration"
if ${DAEMON} quiet-reload; then
log_action_end_msg 0
else
log_action_end_msg 1
fi
;;
status)
ALL=1
ANY=0
# for all instances that are not already running, handle chroot setup if needed, and start
for INSTANCE in $(enabled_instances); do
RUNNING=$(running $INSTANCE)
if [ "X$RUNNING" != X ]; then
ANY=1
else
ALL=0
fi
done
# handle the case when postmulti returns *no* configured instances
if [ $ANY = 0 ]; then
ALL=0
fi
if [ $ALL = 1 ]; then
log_success_msg "postfix is running"
exit 0
elif [ $ANY = 1 ]; then
log_success_msg "some postfix instances are running"
exit 0
else
log_success_msg "postfix is not running"
exit 3
fi
;;
flush|check|abort)
${DAEMON} $1
;;
*)
log_action_msg "Usage: /etc/init.d/postfix {start|stop|restart|reload|flush|check|abort|force-reload|status}"
exit 1
;;
esac
exit 0
|