]> git.sven.stormbind.net Git - sven/mpt-status.git/blobdiff - mpt-status.init
changelog spacing fix
[sven/mpt-status.git] / mpt-status.init
index 65b2e79bdccc9986b43e77b5aebf86a53adc36da..6599f3c52096bdc1c1c2c41b3605dad3dc27a72e 100644 (file)
@@ -1,20 +1,20 @@
 #! /bin/sh
 
 # Author: Petter Reinholdtsen <pere@hungry.com>
+# Author: Sven Hoexter <sven@timegate.de>
 # License: GNU General Public License v2 or later
 
 # mpt-statusd - Check mpt-status values in the background.
 #
-# chkconfig:   345 60 50
+# chkconfig: - 60 50
 # description: Check mpt-status values in the background \
 # using daemonize and the mpt-status utility.
 
 ### BEGIN INIT INFO
-# Provides:          mpt-statusd
-# Required-Start:    $remote_fs $syslog
-# Required-Stop:     $remote_fs $syslog
-# Default-Start:     2 3 4 5
-# Default-Stop:      0 1 6
+# Provides: mpt-statusd
+# Required-Start: $remote_fs $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Stop: 0 1 6
 # Short-Description: Check mpt-status values in the background.
 ### END INIT INFO
 
@@ -24,7 +24,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
@@ -40,17 +40,20 @@ test -x /usr/sbin/mpt-status || exit 0
 
 # Source function library.
 . /etc/rc.d/init.d/functions
-. /lib/lsb/init-functions
 
 if [ $RUN_DAEMON = "no" ] ; then
-       log_failure_msg $"mpt-statusd is disabled in /etc/default/mpt-statusd, not starting."
+        echo "mpt-statusd is disabled in /etc/default/mpt-statusd, not starting." && failure
        exit 0
 fi
 
-#if ! [ -e "/proc/mpt/version" ] ; then
-#      log_failure_msg "The mptctl module is missing."
-#      exit 0
-#fi
+
+#Try to blindly load the mptctl module
+modprobe mptctl || true
+
+if ! [ -e "/proc/mpt/version" ] ; then
+       echo "The mptctl module is missing." && failure
+       exit 0
+fi
 
 check_mpt() {
     echo $$ > $PIDFILE.new && mv $PIDFILE.new $PIDFILE
@@ -132,14 +135,16 @@ check_daemon() {
 d_start() {
     [ -f $PIDFILE ] && PID="`cat $PIDFILE`"
     if [ "$PID" ] ; then
-        log_warning_msg "Daemon already running. Refusing to start another"
+        echo "Daemon already running. Refusing to start another" && warning
         return 0
     elif check_daemon ; then
        # Use daemonize to turn it into a daemon and start it with daemon().
         daemon --pidfile $PIDFILE /usr/sbin/daemonize $SCRIPTNAME check_mpt
-       return 0
+       RETVAL=$?
+       [ $RETVAL -eq 0 ] && touch $LOCKFILE
+       return $RETVAL
     else
-        log_warning_msg "Daemon is already running. Refusing to start another"
+        echo "Daemon is already running. Refusing to start another" && warning
         return 0
     fi
 }
@@ -149,10 +154,18 @@ d_start() {
 #
 d_stop() {
         if [ -f $PIDFILE ] ; then
-               killproc -p $PIDFILE $SCRIPTNAME > /dev/null 2>&1 
-               rm -f $PIDFILE
+               killproc $SCRIPTNAME
+               RETVAL=$?
+               if [ $RETVAL -eq 0 ] ; then
+                   success "$NAME stopped"
+                   rm -f $PIDFILE $LOCKFILE
+                   return 0
+               else
+                   echo "$NAME failed to stop" && failure
+                   return 1
+               fi
         else
-                log_warning_msg "Daemon is already stopped."
+                echo "$NAME is already stopped." && warning
                 return 0
         fi
 }
@@ -161,31 +174,33 @@ d_stop() {
 # therefore can be used by a restart
 d_stop_by_restart() {
         if [ -f $PIDFILE ] ; then
-                killproc -p $PIDFILE $SCRIPTNAME > /dev/null 2>&1 
-                rm -f $PIDFILE
+                killproc -p $PIDFILE $SCRIPTNAME > /dev/null 2>&1
+                rm -f $PIDFILE $LOCKFILE
         else
-                log_warning_msg "Daemon is already stopped."
+                echo "Daemon is already stopped." && warning
         fi
 }
 
 case "$1" in
   start)
-        echo -n ""
-        echo -n $"Starting $DESC: $NAME"
+        echo $"Starting $DESC: $NAME"
         d_start
+       echo
         ;;
   stop)
-        log_begin_msg "Stopping $DESC: $NAME"
+        echo $"Stopping $DESC: $NAME"
         d_stop
+       echo
         ;;
   check_mpt)
         check_mpt
         ;;
   restart|force-reload)
-        echo -n "Restarting $DESC: $NAME"
+        echo "Restarting $DESC: $NAME"
         d_stop_by_restart
         sleep 1
         d_start
+       echo
         ;;
   *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2