diff options
Diffstat (limited to 'scripts/ipmiutil_evt')
-rwxr-xr-x | scripts/ipmiutil_evt | 158 |
1 files changed, 158 insertions, 0 deletions
diff --git a/scripts/ipmiutil_evt b/scripts/ipmiutil_evt new file mode 100755 index 0000000..e8a9e20 --- /dev/null +++ b/scripts/ipmiutil_evt @@ -0,0 +1,158 @@ +#! /bin/sh +# +# ipmiutil_evt init script +# +# chkconfig: - 91 59 +# description: ipmiutil event monitoring service +# +# This starts a daemon that listens for IPMI events. Any events are logged +# in /var/log/ipmiutil_evt.log and also to syslog. +# By changing RUNSCRIPT below, the specified script could also be invoked +# whenever an event occurs. A sample event script is provided at +# /usr/share/ipmiutil/evt.sh +# +### BEGIN INIT INFO +# Provides: ipmiutil_evt +# Required-Start: $local_fs $remote_fs $syslog +# Required-Stop: $local_fs $remote_fs $syslog +# Default-Start: 3 4 5 3 4 5 +# Default-Stop: 0 1 2 6 0 1 2 6 +# Short-Description: ipmiutil event monitoring init script +# Description: Init script starts ipmiutil event monitoring service +### END INIT INFO +# + +#if [ -f /etc/init.d/functions ]; then +# Source function library. +#. /etc/init.d/functions +#fi + +name="ipmiutil_evt" +getevtlog=/var/log/$name.log +lockfile=/var/lock/subsys/$name +prog=/usr/bin/ipmiutil +RUNSCRIPT= +# RUNSCRIPT="-r /usr/share/ipmiutil/evt.sh" + + +getpid () { + p=`ps -ef |grep "$1" |grep -v grep |awk '{print $2}'` + echo $p +} + +start() +{ + echo -n $"Starting $name: " + # do not start if in driverless mode + ipmiutil cmd -k |grep "driverless" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + driverok=0 + else + driverok=1 + fi + if [ $driverok -eq 1 ] + then + [ -x $prog ] || exit 5 + $prog getevt -s -b -t 0 $RUNSCRIPT >$getevtlog + retval=$? + PID=$! + if [ $retval -eq 0 ]; then + PID=`getpid "$prog getevt -s"` + echo $PID >$lockfile + fi + else + echo "No imb or ipmi driver loaded, aborting." + retval=1 + fi + echo + return $retval +} + +stop() +{ + echo -n $"Stopping $name: " + retval=1 + if [ -f $lockfile ]; then + p=`cat $lockfile` + if [ "x$p" = "x" ]; then + p=`getpid "$prog getevt -s"` + fi + if [ "x$p" != "x" ]; then + kill $p + retval=$? + fi + fi + echo + [ $retval -eq 0 ] && rm -f $lockfile + return $retval +} + +restart() { + stop + start +} + + +rh_status() { + if [ -f $lockfile ]; then + p=`cat $lockfile` + if [ "x$p" != "x" ]; then + pid=`getpid $p` + if [ "x$pid" != "x" ]; then + echo "$name (pid $pid) is running..." + retval=0 + else + echo "$name is dead but $lockfile exists" + retval=1 + fi + else + echo "$name $lockfile exists but is empty" + retval=1 + fi + else + echo "$name is stopped" + retval=3 + fi + return $retval +} + +rh_status_q() { + rh_status >/dev/null 2>&1 +} + +if [ ! -d /var/lock/subsys ]; then + lockfile=/var/run/$name.pid +fi + +case "$1" in + start) + rh_status_q && exit 0 + start + ;; + stop) + rh_status_q || exit 0 + stop + ;; + restart) + restart + ;; + reload) + rh_status_q || exit 7 + restart + ;; + force-reload) + restart + ;; + status) + rh_status + ;; + condrestart|try-restart) + rh_status_q || exit 0 + restart + ;; + *) + echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" + exit 2 +esac +exit $? + |