]> git.pld-linux.org Git - packages/exim.git/blobdiff - exim.init
- rel 8; upstream fixes
[packages/exim.git] / exim.init
old mode 100644 (file)
new mode 100755 (executable)
index bb35c7a..d684c12
--- a/exim.init
+++ b/exim.init
@@ -17,6 +17,8 @@
 
 QUEUE=1h
 
+EXIM_CONFIG=/etc/mail/exim.conf
+
 # Source exim configureation.
 if [ -f /etc/sysconfig/exim ]; then
        . /etc/sysconfig/exim
@@ -32,6 +34,34 @@ 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
@@ -40,9 +70,11 @@ start() {
        fi
 
        msg_starting "Exim"
-       daemon exim \
+       daemon /usr/bin/exim \
+               -oP /var/spool/exim/exim-daemon.pid \
                $( is_yes "$ALLOW_TCP_CONNECTIONS" && echo -bd ) \
-               $( [ -n "$QUEUE" ] && echo -q$QUEUE )
+               $( [ -n "$QUEUE" ] && echo -q$QUEUE ) \
+               -C "$EXIM_CONFIG"
        for CONFIG in $EXIM_EXTRA_CONFIGS; do
                        msg_starting "Exim ($CONFIG)"
                        daemon exim \
@@ -73,6 +105,7 @@ condrestart() {
                return
        fi
 
+       checkconfig
        stop
        start
 }
@@ -84,12 +117,10 @@ reload() {
                return
        fi
 
-       run_cmd "Checking exim configuration" exim -bV
-       if [ $? -eq 0 ]; then
-               msg_reloading "Exim"
-               killproc exim -HUP
-               RETVAL=$?
-       fi
+       checkconfig
+       msg_reloading "Exim"
+       killproc exim -HUP
+       RETVAL=$?
 }
 
 RETVAL=0
@@ -102,6 +133,7 @@ case "$1" in
        stop
        ;;
   restart)
+       checkconfig
        stop
        start
        ;;
@@ -112,8 +144,7 @@ case "$1" in
        reload
        ;;
   checkconfig|configtest)
-       exim -bV
-       RETVAL=$?
+       checkconfig 1
        ;;
   status)
        status exim
This page took 0.093441 seconds and 4 git commands to generate.