]>
Commit | Line | Data |
---|---|---|
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 |
18 | QUEUE=1h |
19 | ||
c28a5ac5 AM |
20 | EXIM_CONFIG=/etc/mail/exim.conf |
21 | ||
c0b03131 | 22 | # Source exim configureation. |
2afc326a | 23 | if [ -f /etc/sysconfig/exim ]; then |
9c228cad | 24 | . /etc/sysconfig/exim |
6a7ed0b9 | 25 | fi |
26 | ||
01e5d0f3 | 27 | # Check that networking is up. |
f188b1d5 | 28 | if 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 | |
33 | else | |
34 | exit 0 | |
c0b03131 | 35 | fi |
01e5d0f3 | 36 | |
81a167dc AM |
37 | checkconfig() { |
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 | 65 | start() { |
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 | ||
89 | stop() { | |
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 |
101 | condrestart() { |
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 | 113 | reload() { |
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 | ||
126 | RETVAL=0 | |
127 | # See how we were called. | |
128 | case "$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 | 156 | esac |
157 | ||
9e7b57a4 | 158 | exit $RETVAL |