X-Git-Url: https://git.sven.stormbind.net/?p=sven%2Fmpt-status.git;a=blobdiff_plain;f=mpt-status.init;h=6599f3c52096bdc1c1c2c41b3605dad3dc27a72e;hp=7e72bb0b5acc17aeb380253923c60a9a5454413d;hb=HEAD;hpb=1592872da5619aa057182097e9e7c30c556b2cc6 diff --git a/mpt-status.init b/mpt-status.init index 7e72bb0..6599f3c 100644 --- a/mpt-status.init +++ b/mpt-status.init @@ -6,16 +6,15 @@ # 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 @@ -25,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 @@ -41,10 +40,9 @@ 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 @@ -53,7 +51,7 @@ fi modprobe mptctl || true if ! [ -e "/proc/mpt/version" ] ; then - log_failure_msg "The mptctl module is missing." + echo "The mptctl module is missing." && failure exit 0 fi @@ -137,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 } @@ -154,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 } @@ -167,29 +175,32 @@ 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." + echo "Daemon is already stopped." && warning fi } case "$1" in start) - echo -n $"Starting $DESC: $NAME" + echo $"Starting $DESC: $NAME" d_start + echo ;; stop) - echo -n $"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