Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > main-release > by-pkgid > 2bcbda76fd41ca35be7beea090157d58 > files > 3

ipmiutil-2.6.3-1mdv2010.1.x86_64.rpm

#! /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 $?