]>
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 \ |
07e996cc | 72 | -oP /var/spool/exim/exim-daemon.pid \ |
0d9b945c ER |
73 | $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ |
74 | $( [ -n "$QUEUE" ] && echo -q$QUEUE ) | |
75 | for CONFIG in $EXIM_EXTRA_CONFIGS; do | |
76 | msg_starting "Exim ($CONFIG)" | |
77 | daemon exim \ | |
78 | $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ | |
79 | $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \ | |
80 | -C $CONFIG | |
81 | done | |
82 | RETVAL=$? | |
83 | [ $RETVAL -eq 0 ] && touch /var/lock/subsys/exim | |
84 | } | |
85 | ||
86 | stop() { | |
87 | # Stop daemons. | |
88 | if [ ! -f /var/lock/subsys/exim ]; then | |
89 | msg_not_running "Exim" | |
90 | return | |
91 | fi | |
92 | ||
93 | msg_stopping "Exim" | |
94 | killproc --pidfile /var/spool/exim/exim-daemon.pid exim | |
95 | rm -f /var/lock/subsys/exim /var/spool/exim/exim-daemon.pid >/dev/null 2>&1 | |
96 | } | |
97 | ||
51a9ded0 ER |
98 | condrestart() { |
99 | if [ ! -f /var/lock/subsys/exim ]; then | |
100 | msg_not_running "Exim" | |
101 | RETVAL=$1 | |
102 | return | |
103 | fi | |
104 | ||
81a167dc | 105 | checkconfig |
51a9ded0 ER |
106 | stop |
107 | start | |
108 | } | |
109 | ||
0d9b945c | 110 | reload() { |
9e7b57a4 | 111 | if [ ! -f /var/lock/subsys/exim ]; then |
0d9b945c ER |
112 | msg_not_running "Exim" |
113 | RETVAL=7 | |
114 | return | |
115 | fi | |
116 | ||
81a167dc AM |
117 | checkconfig |
118 | msg_reloading "Exim" | |
119 | killproc exim -HUP | |
120 | RETVAL=$? | |
0d9b945c ER |
121 | } |
122 | ||
123 | RETVAL=0 | |
124 | # See how we were called. | |
125 | case "$1" in | |
126 | start) | |
127 | start | |
6a7ed0b9 | 128 | ;; |
129 | stop) | |
0d9b945c | 130 | stop |
6a7ed0b9 | 131 | ;; |
9c228cad | 132 | restart) |
81a167dc | 133 | checkconfig |
0d9b945c ER |
134 | stop |
135 | start | |
6a7ed0b9 | 136 | ;; |
51a9ded0 ER |
137 | try-restart) |
138 | condrestart 0 | |
7f8aac0d | 139 | ;; |
d1e99794 | 140 | reload|force-reload) |
0d9b945c ER |
141 | reload |
142 | ;; | |
51a9ded0 | 143 | checkconfig|configtest) |
81a167dc | 144 | checkconfig 1 |
51a9ded0 | 145 | ;; |
0d9b945c ER |
146 | status) |
147 | status exim | |
148 | exit $? | |
ee785f0b | 149 | ;; |
6a7ed0b9 | 150 | *) |
51a9ded0 | 151 | msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}" |
d1e99794 | 152 | exit 3 |
6a7ed0b9 | 153 | esac |
154 | ||
9e7b57a4 | 155 | exit $RETVAL |