]>
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 | ||
c0b03131 | 20 | # Source exim configureation. |
2afc326a | 21 | if [ -f /etc/sysconfig/exim ]; then |
9c228cad | 22 | . /etc/sysconfig/exim |
6a7ed0b9 | 23 | fi |
24 | ||
01e5d0f3 | 25 | # Check that networking is up. |
f188b1d5 | 26 | if is_yes "${NETWORKING}"; then |
d809ed84 | 27 | if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then |
0d9b945c | 28 | msg_network_down "Exim" |
f188b1d5 | 29 | exit 1 |
30 | fi | |
31 | else | |
32 | exit 0 | |
c0b03131 | 33 | fi |
01e5d0f3 | 34 | |
81a167dc AM |
35 | checkconfig() { |
36 | local details=${1:-0} ret | |
37 | ||
38 | RETVAL=0 | |
39 | if [ $details = 1 ]; then | |
40 | for CONFIG in /etc/mail/exim.conf $EXIM_EXTRA_CONFIGS; do | |
41 | run_cmd "Checking exim configuration ($CONFIG)" exim -bV -C $CONFIG | |
42 | ret=$? | |
43 | if [ $ret != 0 ]; then | |
44 | RETVAL=$ret | |
45 | fi | |
46 | done | |
47 | else | |
48 | for CONFIG in /etc/mail/exim.conf $EXIM_EXTRA_CONFIGS; do | |
49 | exim -bV -C $CONFIG > /dev/null 2>&1 | |
50 | ret=$? | |
51 | if [ $ret != 0 ]; then | |
52 | show "Checking %s configuration (%s)" "exim" "$CONFIG"; fail | |
53 | RETVAL=$ret | |
54 | fi | |
55 | done | |
56 | if [ $RETVAL != 0 ]; then | |
57 | nls 'Configuration test failed. See details with %s "checkconfig"' $0 | |
58 | exit $RETVAL | |
59 | fi | |
60 | fi | |
61 | } | |
62 | ||
0d9b945c | 63 | start() { |
9c228cad | 64 | # Start daemons. |
0d9b945c ER |
65 | if [ -f /var/lock/subsys/exim ]; then |
66 | msg_already_running "Exim" | |
67 | return | |
68 | fi | |
69 | ||
70 | msg_starting "Exim" | |
e55a592c | 71 | daemon /usr/bin/exim \ |
0d9b945c ER |
72 | $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ |
73 | $( [ -n "$QUEUE" ] && echo -q$QUEUE ) | |
74 | for CONFIG in $EXIM_EXTRA_CONFIGS; do | |
75 | msg_starting "Exim ($CONFIG)" | |
76 | daemon exim \ | |
77 | $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ | |
78 | $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \ | |
79 | -C $CONFIG | |
80 | done | |
81 | RETVAL=$? | |
82 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/exim | |
83 | } | |
84 | ||
85 | stop() { | |
86 | # Stop daemons. | |
87 | if [ ! -f /var/lock/subsys/exim ]; then | |
88 | msg_not_running "Exim" | |
89 | return | |
90 | fi | |
91 | ||
92 | msg_stopping "Exim" | |
93 | killproc --pidfile /var/spool/exim/exim-daemon.pid exim | |
94 | rm -f /var/lock/subsys/exim /var/spool/exim/exim-daemon.pid >/dev/null 2>&1 | |
95 | } | |
96 | ||
51a9ded0 ER |
97 | condrestart() { |
98 | if [ ! -f /var/lock/subsys/exim ]; then | |
99 | msg_not_running "Exim" | |
100 | RETVAL=$1 | |
101 | return | |
102 | fi | |
103 | ||
81a167dc | 104 | checkconfig |
51a9ded0 ER |
105 | stop |
106 | start | |
107 | } | |
108 | ||
0d9b945c | 109 | reload() { |
9e7b57a4 | 110 | if [ ! -f /var/lock/subsys/exim ]; then |
0d9b945c ER |
111 | msg_not_running "Exim" |
112 | RETVAL=7 | |
113 | return | |
114 | fi | |
115 | ||
81a167dc AM |
116 | checkconfig |
117 | msg_reloading "Exim" | |
118 | killproc exim -HUP | |
119 | RETVAL=$? | |
0d9b945c ER |
120 | } |
121 | ||
122 | RETVAL=0 | |
123 | # See how we were called. | |
124 | case "$1" in | |
125 | start) | |
126 | start | |
6a7ed0b9 | 127 | ;; |
128 | stop) | |
0d9b945c | 129 | stop |
6a7ed0b9 | 130 | ;; |
9c228cad | 131 | restart) |
81a167dc | 132 | checkconfig |
0d9b945c ER |
133 | stop |
134 | start | |
6a7ed0b9 | 135 | ;; |
51a9ded0 ER |
136 | try-restart) |
137 | condrestart 0 | |
7f8aac0d | 138 | ;; |
d1e99794 | 139 | reload|force-reload) |
0d9b945c ER |
140 | reload |
141 | ;; | |
51a9ded0 | 142 | checkconfig|configtest) |
81a167dc | 143 | checkconfig 1 |
51a9ded0 | 144 | ;; |
0d9b945c ER |
145 | status) |
146 | status exim | |
147 | exit $? | |
ee785f0b | 148 | ;; |
6a7ed0b9 | 149 | *) |
51a9ded0 | 150 | msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}" |
d1e99794 | 151 | exit 3 |
6a7ed0b9 | 152 | esac |
153 | ||
9e7b57a4 | 154 | exit $RETVAL |