#!/bin/sh # # 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/spool/exim/exim-daemon.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network QUEUE=1h EXIM_CONFIG=/etc/mail/exim.conf # Source exim configureation. if [ -f /etc/sysconfig/exim ]; then . /etc/sysconfig/exim fi # Check that networking is up. 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 checkconfig() { local details=${1:-0} ret RETVAL=0 if [ $details = 1 ]; then for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do run_cmd "Checking exim configuration ($CONFIG)" exim -bV -C $CONFIG ret=$? if [ $ret != 0 ]; then RETVAL=$ret fi done else for CONFIG in "$EXIM_CONFIG" $EXIM_EXTRA_CONFIGS; do exim -bV -C "$CONFIG" > /dev/null 2>&1 ret=$? if [ $ret != 0 ]; then show "Checking %s configuration (%s)" "exim" "$CONFIG"; fail RETVAL=$ret fi done if [ $RETVAL != 0 ]; then nls 'Configuration test failed. See details with %s "checkconfig"' $0 exit $RETVAL fi fi } start() { # Start daemons. if [ -f /var/lock/subsys/exim ]; then msg_already_running "Exim" return fi msg_starting "Exim" daemon /usr/bin/exim \ -oP /var/spool/exim/exim-daemon.pid \ $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \ $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \ -C "$EXIM_CONFIG" 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 } condrestart() { if [ ! -f /var/lock/subsys/exim ]; then msg_not_running "Exim" RETVAL=$1 return fi checkconfig stop start } reload() { if [ ! -f /var/lock/subsys/exim ]; then msg_not_running "Exim" RETVAL=7 return fi checkconfig msg_reloading "Exim" killproc exim -HUP RETVAL=$? } RETVAL=0 # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) checkconfig stop start ;; try-restart) condrestart 0 ;; reload|force-reload) reload ;; checkconfig|configtest) checkconfig 1 ;; status) status exim exit $? ;; *) msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|configtest|status}" exit 3 esac exit $RETVAL