]> git.pld-linux.org Git - packages/exim.git/blob - exim.init
- rel 3
[packages/exim.git] / exim.init
1 #!/bin/sh
2 #
3 # exim          This shell script takes care of starting and stopping Exim.
4 #
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
10 # pidfile:      /var/spool/exim/exim-daemon.pid
11
12 # Source function library.
13 . /etc/rc.d/init.d/functions
14
15 # Source networking configuration.
16 . /etc/sysconfig/network
17
18 QUEUE=1h
19
20 # Source exim configureation.
21 if [ -f /etc/sysconfig/exim ]; then
22         . /etc/sysconfig/exim
23 fi
24
25 # Check that networking is up.
26 if is_yes "${NETWORKING}"; then
27         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
28                 msg_network_down "Exim"
29                 exit 1
30         fi
31 else
32         exit 0
33 fi
34
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
63 start() {
64         # Start daemons.
65         if [ -f /var/lock/subsys/exim ]; then
66                 msg_already_running "Exim"
67                 return
68         fi
69
70         msg_starting "Exim"
71         daemon /usr/bin/exim \
72                 -oP /var/spool/exim/exim-daemon.pid \
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
98 condrestart() {
99         if [ ! -f /var/lock/subsys/exim ]; then
100                 msg_not_running "Exim"
101                 RETVAL=$1
102                 return
103         fi
104
105         checkconfig
106         stop
107         start
108 }
109
110 reload() {
111         if [ ! -f /var/lock/subsys/exim ]; then
112                 msg_not_running "Exim"
113                 RETVAL=7
114                 return
115         fi
116
117         checkconfig
118         msg_reloading "Exim"
119         killproc exim -HUP
120         RETVAL=$?
121 }
122
123 RETVAL=0
124 # See how we were called.
125 case "$1" in
126   start)
127         start
128         ;;
129   stop)
130         stop
131         ;;
132   restart)
133         checkconfig
134         stop
135         start
136         ;;
137   try-restart)
138         condrestart 0
139         ;;
140   reload|force-reload)
141         reload
142         ;;
143   checkconfig|configtest)
144         checkconfig 1
145         ;;
146   status)
147         status exim
148         exit $?
149         ;;
150   *)
151         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}"
152         exit 3
153 esac
154
155 exit $RETVAL
This page took 0.036994 seconds and 3 git commands to generate.