From 1a5ff7bf4524ed5a494b68f024027de10e4ffb33 Mon Sep 17 00:00:00 2001 From: Victor Seva Date: Thu, 10 Oct 2013 11:48:38 +0200 Subject: [PATCH] MT#4281 fix return value of init script. Version from www_csc --- debian/ngcp-panel-nginx.init | 105 ++++++++++++++++++++--------------- 1 file changed, 61 insertions(+), 44 deletions(-) diff --git a/debian/ngcp-panel-nginx.init b/debian/ngcp-panel-nginx.init index 96b5876219..8527f231c1 100644 --- a/debian/ngcp-panel-nginx.init +++ b/debian/ngcp-panel-nginx.init @@ -25,73 +25,90 @@ NPROC=1 OPTIONS="--listen $USOCKET --daemon --pidfile $PIDFILE --nproc $NPROC" check_running() { - [ -s $PIDFILE ] && kill -0 $(cat $PIDFILE) >/dev/null 2>&1 + if [ -s $PIDFILE ]; then + kill -0 $(cat $PIDFILE) >/dev/null 2>&1 + else + PID=`pidofproc $DAEMON` + if [ -z "$PID" ]; then + return 1 + fi + fi } _start() { - rm -f $PIDFILE 2>/dev/null - start-stop-daemon --start --quiet --pidfile $PIDFILE \ - --exec $DAEMON --chdir $HOMEDIR \ - --user $USER --group $GROUP \ - -- $OPTIONS || log_failure_msg "error" -} - -start() { - log_daemon_msg "Starting $DESC: $NAME" - if check_running; then - log_progress_msg "already running" - log_end_msg 0 - exit 0 + rm -f $PIDFILE 2>/dev/null + start-stop-daemon --start --quiet \ + --pidfile $PIDFILE \ + --exec $DAEMON --chdir $HOMEDIR \ + --user $USER --group $GROUP \ + -- $OPTIONS || log_failure_msg "error" + sleep 1 + if check_running ; then + return 0 + else + return 1 fi - _start - log_end_msg $? - return $? } _stop() { + if ! check_running ; then + log_progress_msg " not running" + return 0 + fi if [ -e $PIDFILE ]; then - if ! check_running ; then - log_daemon_msg " not running" - return 0 - fi kill `cat $PIDFILE`; - for i in 1 2 3 4 5 6 7; do - echo -n "." - sleep 1; - if check_running ; then - return 0 - fi - done - if check_running ; then - return 1; + else + PID=`pidofproc $DAEMON` + if [ -n "$PID" ]; then + kill $PID fi fi -} - -stop() { - log_daemon_msg "Stopping $DESC: $NAME" - _stop - log_end_msg $? - return $? + for i in 1 2 3 4 5 6 7; do + log_progress_msg "." + sleep 1; + if ! check_running ; then + return 0 + fi + done + if check_running ; then + return 1 + fi } case "$1" in start) - start + log_daemon_msg "Starting $DESC: $NAME" + if check_running; then + log_progress_msg "already running" + log_end_msg 0 + exit 0 + fi + _start; status="$?" + log_end_msg $status + exit $status ;; stop) - stop + log_daemon_msg "Stopping $DESC: $NAME" + _stop; status="$?" + log_end_msg $status + exit $status ;; restart|force-reload) log_daemon_msg "Restarting web application" $NAME - _stop - _start - log_end_msg $? - return $? + _stop; status="$?" + if [ "$status" = 0 ]; then + _start; status="$?" + fi + log_end_msg $status + exit $status ;; status) log_daemon_msg "Status of $DESC: " - status_of_proc -p$PIDFILE $DAEMON $NAME + if [ -s $PIDFILE ]; then + status_of_proc -p$PIDFILE $DAEMON $NAME + else + status_of_proc $DAEMON $NAME + fi ;; *) N=/etc/init.d/$NAME