]> git.pld-linux.org Git - packages/exim.git/blame - exim.init
Rel 14; fix segfault in srs
[packages/exim.git] / exim.init
CommitLineData
6a7ed0b9 1#!/bin/sh
2#
c0b03131 3# exim This shell script takes care of starting and stopping Exim.
6a7ed0b9 4#
c0b03131
JR
5# chkconfig: 2345 80 30
6# description: Exim is a Mail Transport Agent, which is the program \
7# that moves mail from one machine to another.
8# processname: exim
9# config: /etc/exim.cf
2b4493b8 10# pidfile: /var/spool/exim/exim-daemon.pid
9c228cad
AM
11
12# Source function library.
6a7ed0b9 13. /etc/rc.d/init.d/functions
14
9c228cad 15# Source networking configuration.
6a7ed0b9 16. /etc/sysconfig/network
17
0d9b945c
ER
18QUEUE=1h
19
c28a5ac5
AM
20EXIM_CONFIG=/etc/mail/exim.conf
21
c0b03131 22# Source exim configureation.
2afc326a 23if [ -f /etc/sysconfig/exim ]; then
9c228cad 24 . /etc/sysconfig/exim
6a7ed0b9 25fi
26
01e5d0f3 27# Check that networking is up.
f188b1d5 28if is_yes "${NETWORKING}"; then
d809ed84 29 if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
0d9b945c 30 msg_network_down "Exim"
f188b1d5 31 exit 1
32 fi
33else
34 exit 0
c0b03131 35fi
01e5d0f3 36
81a167dc
AM
37checkconfig() {
38 local details=${1:-0} ret
39
40 RETVAL=0
41 if [ $details = 1 ]; then
c28a5ac5 42 for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do
81a167dc
AM
43 run_cmd "Checking exim configuration ($CONFIG)" exim -bV -C $CONFIG
44 ret=$?
45 if [ $ret != 0 ]; then
46 RETVAL=$ret
47 fi
48 done
49 else
c28a5ac5
AM
50 for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do
51 exim -bV -C "$CONFIG" > /dev/null 2>&1
81a167dc
AM
52 ret=$?
53 if [ $ret != 0 ]; then
54 show "Checking %s configuration (%s)" "exim" "$CONFIG"; fail
55 RETVAL=$ret
56 fi
57 done
58 if [ $RETVAL != 0 ]; then
59 nls 'Configuration test failed. See details with %s "checkconfig"' $0
60 exit $RETVAL
61 fi
62 fi
63}
64
0d9b945c 65start() {
9c228cad 66 # Start daemons.
0d9b945c
ER
67 if [ -f /var/lock/subsys/exim ]; then
68 msg_already_running "Exim"
69 return
70 fi
71
72 msg_starting "Exim"
e55a592c 73 daemon /usr/bin/exim \
07e996cc 74 -oP /var/spool/exim/exim-daemon.pid \
0d9b945c 75 $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
c28a5ac5
AM
76 $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \
77 -C "$EXIM_CONFIG"
0d9b945c
ER
78 for CONFIG in $EXIM_EXTRA_CONFIGS; do
79 msg_starting "Exim ($CONFIG)"
80 daemon exim \
81 $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
82 $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \
83 -C $CONFIG
84 done
85 RETVAL=$?
86 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/exim
87}
88
89stop() {
90 # Stop daemons.
91 if [ ! -f /var/lock/subsys/exim ]; then
92 msg_not_running "Exim"
93 return
94 fi
95
96 msg_stopping "Exim"
97 killproc --pidfile /var/spool/exim/exim-daemon.pid exim
98 rm -f /var/lock/subsys/exim /var/spool/exim/exim-daemon.pid >/dev/null 2>&1
99}
100
51a9ded0
ER
101condrestart() {
102 if [ ! -f /var/lock/subsys/exim ]; then
103 msg_not_running "Exim"
104 RETVAL=$1
105 return
106 fi
107
81a167dc 108 checkconfig
51a9ded0
ER
109 stop
110 start
111}
112
0d9b945c 113reload() {
9e7b57a4 114 if [ ! -f /var/lock/subsys/exim ]; then
0d9b945c
ER
115 msg_not_running "Exim"
116 RETVAL=7
117 return
118 fi
119
81a167dc
AM
120 checkconfig
121 msg_reloading "Exim"
122 killproc exim -HUP
123 RETVAL=$?
0d9b945c
ER
124}
125
126RETVAL=0
127# See how we were called.
128case "$1" in
129 start)
130 start
6a7ed0b9 131 ;;
132 stop)
0d9b945c 133 stop
6a7ed0b9 134 ;;
9c228cad 135 restart)
81a167dc 136 checkconfig
0d9b945c
ER
137 stop
138 start
6a7ed0b9 139 ;;
51a9ded0
ER
140 try-restart)
141 condrestart 0
7f8aac0d 142 ;;
d1e99794 143 reload|force-reload)
0d9b945c
ER
144 reload
145 ;;
51a9ded0 146 checkconfig|configtest)
81a167dc 147 checkconfig 1
51a9ded0 148 ;;
0d9b945c
ER
149 status)
150 status exim
151 exit $?
ee785f0b 152 ;;
6a7ed0b9 153 *)
51a9ded0 154 msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}"
d1e99794 155 exit 3
6a7ed0b9 156esac
157
9e7b57a4 158exit $RETVAL
This page took 0.651433 seconds and 4 git commands to generate.