diff options
Diffstat (limited to 'debian')
-rw-r--r-- | debian/mauvealert-server.init | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/debian/mauvealert-server.init b/debian/mauvealert-server.init index 1e48c68..592304f 100644 --- a/debian/mauvealert-server.init +++ b/debian/mauvealert-server.init @@ -59,8 +59,8 @@ do_start() count=0 while [ $((count = count + 1)) -le 5 ] ; do - echo -n . sleep 1 + # This is just a test to see if the daemon is running yet. start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON --chuid $RUNASUSER --test > /dev/null \ || return 0 done @@ -81,6 +81,7 @@ do_stop() start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --user $RUNASUSER RETVAL="$?" [ "$RETVAL" = 2 ] && return 2 + # Wait for children to finish too if this is a daemon that forks # and if the daemon is only ever run from this initscript. # If the above conditions are not satisfied then add some other code @@ -88,7 +89,9 @@ do_stop() # 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 --pidfile $PIDFILE --user $RUNASUSER - [ "$?" = 2 ] && return 2 + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. rm -f $PIDFILE return "$RETVAL" @@ -121,16 +124,16 @@ case "$1" in [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" do_start case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 || exit 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 || exit 1 ;; esac ;; stop) [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" do_stop case "$?" in - 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 || exit 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 || exit 1 ;; esac ;; status) |