Subject: Improve init scripts Author: Christoph Biedl Date: 2018-09-23 Forwarded: not-yet --- a/contrib/persistence/vblade.init.in +++ b/contrib/persistence/vblade.init.in @@ -8,7 +8,7 @@ # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: vblade exports -# Description: Manage all vlbade exports defined in +# Description: Manage all vblade exports defined in # /etc/vblade.conf.d/ ### END INIT INFO @@ -98,6 +98,10 @@ --exec $ionice "$VBLADE" -- \ $shelf $slot $netif $filename $options \ || return 2 + sleep 1 + start-stop-daemon --start --quiet \ + --pidfile "$PIDFILE" --exec "$VBLADE" --test > /dev/null \ + && return 2 [% ELSIF control == 'daemon' -%] "$DAEMON" \ --running \ @@ -112,6 +116,12 @@ --stdout daemon.notice \ --stderr daemon.err -- \ $VBLADE $options $shelf $slot $netif $filename || return 2 + sleep 1 + "$DAEMON" \ + --running \ + --name "$INSTANCE" \ + --pidfiles "$PIDDIR" \ + || return 2 [% END -%] } @@ -168,7 +178,10 @@ do_start "$INSTANCE" "$CONFIG" case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 2) + [ "$VERBOSE" != no ] && log_end_msg 1 + EXIT=1 + ;; esac ;; stop) @@ -176,7 +189,10 @@ do_stop "$INSTANCE" case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 2) + [ "$VERBOSE" != no ] && log_end_msg 1 + EXIT=1 + ;; esac ;; status) --- a/contrib/persistence/vblade.init.lsb-daemon +++ b/contrib/persistence/vblade.init.lsb-daemon @@ -77,6 +77,12 @@ --stdout daemon.notice \ --stderr daemon.err -- \ $VBLADE $options $shelf $slot $netif $filename || return 2 + sleep 1 + "$DAEMON" \ + --running \ + --name "$INSTANCE" \ + --pidfiles "$PIDDIR" \ + || return 2 } # Stop a vblade instance @@ -121,7 +127,10 @@ do_start "$INSTANCE" "$CONFIG" case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 2) + [ "$VERBOSE" != no ] && log_end_msg 1 + EXIT=1 + ;; esac ;; stop) @@ -129,7 +138,10 @@ do_stop "$INSTANCE" case "$?" in 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; - 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + 2) + [ "$VERBOSE" != no ] && log_end_msg 1 + EXIT=1 + ;; esac ;; status)