]> git.pld-linux.org Git - packages/exim.git/blob - exim.init
perl 5.36.0 rebuild; rel 5
[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 EXIM_CONFIG=/etc/mail/exim.conf
21
22 # Source exim configureation.
23 if [ -f /etc/sysconfig/exim ]; then
24         . /etc/sysconfig/exim
25 fi
26
27 # Check that networking is up.
28 if is_yes "${NETWORKING}"; then
29         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
30                 msg_network_down "Exim"
31                 exit 1
32         fi
33 else
34         exit 0
35 fi
36
37 checkconfig() {
38         local details=${1:-0} ret
39
40         RETVAL=0
41         if [ $details = 1 ]; then
42                 for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do
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
50                 for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do
51                         exim -bV -C "$CONFIG" > /dev/null 2>&1
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
65 start() {
66         # Start daemons.
67         if [ -f /var/lock/subsys/exim ]; then
68                 msg_already_running "Exim"
69                 return
70         fi
71
72         msg_starting "Exim"
73         daemon /usr/bin/exim \
74                 -oP /var/spool/exim/exim-daemon.pid \
75                 $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
76                 $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \
77                 -C "$EXIM_CONFIG"
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
101 condrestart() {
102         if [ ! -f /var/lock/subsys/exim ]; then
103                 msg_not_running "Exim"
104                 RETVAL=$1
105                 return
106         fi
107
108         checkconfig
109         stop
110         start
111 }
112
113 reload() {
114         if [ ! -f /var/lock/subsys/exim ]; then
115                 msg_not_running "Exim"
116                 RETVAL=7
117                 return
118         fi
119
120         checkconfig
121         msg_reloading "Exim"
122         killproc exim -HUP
123         RETVAL=$?
124 }
125
126 RETVAL=0
127 # See how we were called.
128 case "$1" in
129   start)
130         start
131         ;;
132   stop)
133         stop
134         ;;
135   restart)
136         checkconfig
137         stop
138         start
139         ;;
140   try-restart)
141         condrestart 0
142         ;;
143   reload|force-reload)
144         reload
145         ;;
146   checkconfig|configtest)
147         checkconfig 1
148         ;;
149   status)
150         status exim
151         exit $?
152         ;;
153   *)
154         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}"
155         exit 3
156 esac
157
158 exit $RETVAL
This page took 0.068001 seconds and 3 git commands to generate.