#! /bin/sh # # ipmiutil_asy init script # # chkconfig: - 91 59 # description: ipmiutil async bridge agent, listens for IPMI LAN client requests # # This starts a daemon that listens for asynchronous IPMI LAN soft-shutdown # requests from a remote ipmiutil reset (-o/-D). It depends upon an imb or # openipmi driver. # ### BEGIN INIT INFO # Provides: ipmiutil_asy # Required-Start: $localfs $remotefs $syslog # Required-Stop: $localfs $remotefs $syslog # Default-Start: # Default-Stop: # Short-Description: ipmiutil async bridge agent init script # Description: Init script starts ipmiutil async bridge agent for remote reset ### END INIT INFO # #if [ -f /etc/init.d/functions ]; then # Source function library. #. /etc/init.d/functions #fi name="ipmiutil_asy bridge agent" getevtlog=/var/log/ipmiutil_asy.log lockfile=/var/lock/subsys/ipmiutil_asy prog=/usr/sbin/ipmiutil getpid () { p=`ps -ef |grep $1 |grep -v grep |awk '{print $2}'` echo $p } start() { gprintf "Starting %s: " "$name" driverok=0 if [ "`lsmod | grep "ipmi_devintf"`" != "" ] then driverok=1 fi if [ "`lsmod | grep "^imb "`" != "" ] then driverok=1 fi if [ $driverok -eq 1 ] then [ -x $prog ] || exit 5 $prog getevt -a -t0 >$getevtlog & retval=$? PID=$! if [ $retval -eq 0 ]; then echo $PID >$lockfile fi else gprintf "No imb or ipmi driver loaded, aborting.\n" retval=1 fi echo return $retval } stop() { gprintf "Stopping %s: " "$name" retval=1 if [ -f $lockfile ]; then p=`cat $lockfile` if [ "x$p" = "x" ]; then p=`getpid "$prog getevt -a"` 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 gprintf "%s (pid %s) is running...\n" "$name" "$pid" retval=0 else gprintf "%s is dead but %s exists\n" "$name" "$lockfile" retval=1 fi else gprintf "%s %s exists but is empty\n" "$name" "$lockfile" retval=1 fi else gprintf "%s is stopped\n" "$name" retval=3 fi return $retval } rh_status_q() { rh_status >/dev/null 2>&1 } 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 ;; *) gprintf "Usage: %s {start|stop|status|restart|condrestart|try-restart|reload|force-reload}\n" "$0" exit 2 esac exit $?