X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=exim.init;h=bb35c7ad13f675af65806e6ea0159d69302bb837;hb=ffa5b07dd89862b62ccd238d008f200108196c87;hp=bfc3739b674fe28791777778b84119fba8d58b70;hpb=6a7ed0b944b7daff1035111d4191b2706211664b;p=packages%2Fexim.git diff --git a/exim.init b/exim.init index bfc3739..bb35c7a 100644 --- a/exim.init +++ b/exim.init @@ -1,14 +1,13 @@ #!/bin/sh # -# exim This shell script takes care of starting and stopping -# Exim. +# exim This shell script takes care of starting and stopping Exim. # -# chkconfig: 2345 80 30 -# description: Exim is a Mail Transport Agent, which is the program \ -# that moves mail from one machine to another. -# processname: exim -# config: /etc/exim.cf -# pidfile: /var/run/exim.pid +# chkconfig: 2345 80 30 +# description: Exim is a Mail Transport Agent, which is the program \ +# that moves mail from one machine to another. +# processname: exim +# config: /etc/exim.cf +# pidfile: /var/spool/exim/exim-daemon.pid # Source function library. . /etc/rc.d/init.d/functions @@ -16,47 +15,113 @@ # Source networking configuration. . /etc/sysconfig/network -# Source sendmail configureation. -if [ -f /etc/sysconfig/exim ] ; then +QUEUE=1h + +# Source exim configureation. +if [ -f /etc/sysconfig/exim ]; then . /etc/sysconfig/exim -else - DAEMON=yes - QUEUE=1h fi # Check that networking is up. -[ ${NETWORKING} = "no" ] && exit 0 +if is_yes "${NETWORKING}"; then + if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then + msg_network_down "Exim" + exit 1 + fi +else + exit 0 +fi + +start() { + # Start daemons. + if [ -f /var/lock/subsys/exim ]; then + msg_already_running "Exim" + return + fi + + msg_starting "Exim" + daemon exim \ + $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ + $( [ -n "$QUEUE" ] && echo -q$QUEUE ) + for CONFIG in $EXIM_EXTRA_CONFIGS; do + msg_starting "Exim ($CONFIG)" + daemon exim \ + $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ + $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \ + -C $CONFIG + done + RETVAL=$? + [ $RETVAL -eq 0 ] && touch /var/lock/subsys/exim +} + +stop() { + # Stop daemons. + if [ ! -f /var/lock/subsys/exim ]; then + msg_not_running "Exim" + return + fi + + msg_stopping "Exim" + killproc --pidfile /var/spool/exim/exim-daemon.pid exim + rm -f /var/lock/subsys/exim /var/spool/exim/exim-daemon.pid >/dev/null 2>&1 +} -[ -f /usr/bin/exim ] || exit 0 +condrestart() { + if [ ! -f /var/lock/subsys/exim ]; then + msg_not_running "Exim" + RETVAL=$1 + return + fi + stop + start +} + +reload() { + if [ ! -f /var/lock/subsys/exim ]; then + msg_not_running "Exim" + RETVAL=7 + return + fi + + run_cmd "Checking exim configuration" exim -bV + if [ $? -eq 0 ]; then + msg_reloading "Exim" + killproc exim -HUP + RETVAL=$? + fi +} + +RETVAL=0 # See how we were called. case "$1" in start) - # Start daemons. - echo -n "Starting exim: " - daemon /usr/bin/exim $([ "$DAEMON" = yes ] && echo -bd) \ - $([ -n "$QUEUE" ] && echo -q$QUEUE) - echo - touch /var/lock/subsys/exim + start ;; stop) - # Stop daemons. - echo -n "Shutting down exim: " - killproc exim - echo - rm -f /var/lock/subsys/exim + stop ;; restart) - $0 stop - $0 start + stop + start + ;; + try-restart) + condrestart 0 + ;; + reload|force-reload) + reload + ;; + checkconfig|configtest) + exim -bV + RETVAL=$? ;; status) status exim + exit $? ;; *) - echo "Usage: exim {start|stop|restart|status}" - exit 1 + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}" + exit 3 esac -exit 0 - +exit $RETVAL