Fix Metaproxy stops logging after check config failed MP-590
[metaproxy-moved-to-github.git] / debian / metaproxy.init
index 2d19055..67743dd 100644 (file)
@@ -22,6 +22,9 @@ SCRIPTNAME=/etc/init.d/$NAME
 # Exit if the package is not installed
 [ -x "$DAEMON" ] || exit 0
 
+# Read user information
+. /etc/metaproxy/metaproxy.user
+
 # Read configuration variable file if it is present
 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
 
@@ -61,7 +64,7 @@ do_stop()
        #   1 if daemon was already stopped
        #   2 if daemon could not be stopped
        #   other if a failure occurred
-       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
+       start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
        RETVAL="$?"
        [ "$RETVAL" = 2 ] && return 2
        # Wait for children to finish too if this is a daemon that forks
@@ -70,15 +73,15 @@ do_stop()
        # that waits for the process to drop all resources that could be
        # needed by services started subsequently.  A last resort is to
        # sleep for some time.
-       start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
-       [ "$?" = 2 ] && return 2
+       #start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+       #[ "$?" = 2 ] && return 2
        # Many daemons don't delete their pidfiles when they exit.
        rm -f $PIDFILE
        return "$RETVAL"
 }
 
 #
-# Function that sends a SIGHUP to the daemon/service
+# Function that sends a SIGUSR1 to the daemon/service
 #
 do_reload() {
        #
@@ -86,7 +89,17 @@ do_reload() {
        # restarting (for example, when it is sent a SIGHUP),
        # then implement that here.
        #
-       start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
+       start-stop-daemon --stop --signal USR1 --quiet --retry=5 --pidfile $PIDFILE --name $NAME
+       RETVAL="$?"
+       # Return if daemon could not be stopped
+       [ "$RETVAL" = 2 ] && return 2
+       # daemon not running or stopped
+       rm -f $PIDFILE
+       # Return if it was not running, in which case we don't start it
+       [ "$RETVAL" = 1 ] && return 0
+       start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
+               $DAEMON_OPTS \
+               || return 2
        return 0
 }
 
@@ -96,7 +109,10 @@ case "$1" in
        do_start
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+               2) [ "$VERBOSE" = no ] && \
+                               log_daemon_msg "Starting $DESC" "$NAME"
+                       log_end_msg 1 
+               ;;
        esac
        ;;
   stop)
@@ -104,19 +120,22 @@ case "$1" in
        do_stop
        case "$?" in
                0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
-               2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+               2) [ "$VERBOSE" = no ] && \
+                               log_daemon_msg "Stopping $DESC" "$NAME"
+                       log_end_msg 1 
+               ;;
        esac
        ;;
-  #reload|force-reload)
+  reload|force-reload)
        #
        # If do_reload() is not implemented then leave this commented out
        # and leave 'force-reload' as an alias for 'restart'.
        #
-       #log_daemon_msg "Reloading $DESC" "$NAME"
-       #do_reload
-       #log_end_msg $?
-       #;;
-  restart|force-reload)
+       log_daemon_msg "Reloading $DESC" "$NAME"
+       do_reload
+       log_end_msg $?
+       ;;
+  restart)
        #
        # If the "reload" option is implemented then remove the
        # 'force-reload' alias
@@ -138,9 +157,11 @@ case "$1" in
                ;;
        esac
        ;;
+  status)
+       status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
+       ;;
   *)
-       #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
-       echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+       echo "Usage: $SCRIPTNAME {start|stop|status|restart|reload|force-reload}" >&2
        exit 3
        ;;
 esac