]> git.sven.stormbind.net Git - sven/mpt-status.git/blobdiff - mpt-status.init
Introduce a RH style lockfile in /var/lock/subsys
[sven/mpt-status.git] / mpt-status.init
index c30c4ac08623c9dd9e43c2bac5434616e47f9452..af69e06b2163d0eee5b797bcdede2c806542450d 100644 (file)
@@ -25,7 +25,7 @@ NAME=mpt-statusd
 PIDFILE=/var/run/$NAME.pid
 STATUSFILE=/var/run/$NAME.status
 SCRIPTNAME=/etc/init.d/$NAME
-
+LOCKFILE=/var/lock/subsys/$NAME
 
 # Do not touch you can configure this in /etc/default/mpt-statusd
 MAILTO=root   # Where to report problems
@@ -143,7 +143,7 @@ d_start() {
        # Use daemonize to turn it into a daemon and start it with daemon().
         daemon --pidfile $PIDFILE /usr/sbin/daemonize $SCRIPTNAME check_mpt
        RETVAL=$?
-       [ $RETVAL -eq 0 ] && rm -f $PIDFILE
+       [ $RETVAL -eq 0 ] && touch $LOCKFILE
        return $RETVAL
     else
         log_warning_msg "Daemon is already running. Refusing to start another"
@@ -158,10 +158,16 @@ d_stop() {
         if [ -f $PIDFILE ] ; then
                killproc $SCRIPTNAME
                RETVAL=$?
-               [ $RETVAL -eq 0 ] && rm -f $PIDFILE
-               return $RETVAL
+               if [ $RETVAL -eq 0 ] ; then
+                   success "$NAME stopped"
+                   rm -f $PIDFILE $LOCKFILE
+                   return 0
+               else
+                   log_failure_msg "$NAME failed to stop"
+                   return 1
+               fi
         else
-                log_warning_msg "Daemon is already stopped."
+                log_warning_msg "$NAME is already stopped."
                 return 0
         fi
 }
@@ -171,7 +177,7 @@ d_stop() {
 d_stop_by_restart() {
         if [ -f $PIDFILE ] ; then
                 killproc -p $PIDFILE $SCRIPTNAME > /dev/null 2>&1
-                rm -f $PIDFILE
+                rm -f $PIDFILE $LOCKFILE
         else
                 log_warning_msg "Daemon is already stopped."
         fi