#! /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-Start: -
+# Default-Stop: 0 1 6
# Short-Description: Check mpt-status values in the background.
### END INIT INFO
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
# 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
+
+#Try to blindly load the mptctl module
+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
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
}
#
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
}
# 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)
- 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