1*c18ec02fSPetter Reinholdtsen#! /bin/sh 2*c18ec02fSPetter Reinholdtsen### BEGIN INIT INFO 3*c18ec02fSPetter Reinholdtsen# Provides: ipmievd 4*c18ec02fSPetter Reinholdtsen# Required-Start: $local_fs $remote_fs $syslog 5*c18ec02fSPetter Reinholdtsen# Required-Stop: $local_fs $remote_fs $syslog 6*c18ec02fSPetter Reinholdtsen# Default-Start: 2 3 4 5 7*c18ec02fSPetter Reinholdtsen# Default-Stop: S 0 1 6 8*c18ec02fSPetter Reinholdtsen# Short-Description: IPMI event daemon 9*c18ec02fSPetter Reinholdtsen# Description: ipmievd is a daemon which will listen for events 10*c18ec02fSPetter Reinholdtsen# from the BMC that are being sent to the SEL and 11*c18ec02fSPetter Reinholdtsen# also log those messages to syslog. 12*c18ec02fSPetter Reinholdtsen### END INIT INFO 13*c18ec02fSPetter Reinholdtsen# 14*c18ec02fSPetter Reinholdtsen# Author: Elmar Hoffmann <elho@elho.net> 15*c18ec02fSPetter Reinholdtsen# Licence: This script is public domain using the same 16*c18ec02fSPetter Reinholdtsen# licence as ipmitool itself. 17*c18ec02fSPetter Reinholdtsen# Modified by: Petter Reinholdtsen 18*c18ec02fSPetter Reinholdtsen 19*c18ec02fSPetter Reinholdtsenset -e 20*c18ec02fSPetter Reinholdtsen 21*c18ec02fSPetter ReinholdtsenPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 22*c18ec02fSPetter ReinholdtsenDESC="IPMI event daemon" 23*c18ec02fSPetter ReinholdtsenNAME=ipmievd 24*c18ec02fSPetter ReinholdtsenDAEMON=/usr/sbin/$NAME 25*c18ec02fSPetter ReinholdtsenPIDFILE=/var/run/$NAME.pid 26*c18ec02fSPetter ReinholdtsenSCRIPTNAME=/etc/init.d/$NAME 27*c18ec02fSPetter Reinholdtsen 28*c18ec02fSPetter Reinholdtsen# Gracefully exit if the package has been removed. 29*c18ec02fSPetter Reinholdtsentest -x $DAEMON || exit 0 30*c18ec02fSPetter Reinholdtsen 31*c18ec02fSPetter Reinholdtsen. /lib/lsb/init-functions 32*c18ec02fSPetter Reinholdtsen. /etc/default/rcS 33*c18ec02fSPetter Reinholdtsen 34*c18ec02fSPetter Reinholdtsen# Options used by ipmievd. 35*c18ec02fSPetter Reinholdtsen# 36*c18ec02fSPetter Reinholdtsen# "open" uses the asynchronous event notification from the OpenIPMI 37*c18ec02fSPetter Reinholdtsen# kernel driver, "sel" uses active polling of the contents of the SEL 38*c18ec02fSPetter Reinholdtsen# for new events. 39*c18ec02fSPetter Reinholdtsen# 40*c18ec02fSPetter Reinholdtsen# Need to force 'daemon' mode, to make sure messages are sent to 41*c18ec02fSPetter Reinholdtsen# syslog and the program forks into the background. 42*c18ec02fSPetter Reinholdtsen# 43*c18ec02fSPetter Reinholdtsen# Se ipmievd(8) for more info. 44*c18ec02fSPetter ReinholdtsenIPMIEVD_OPTIONS="open daemon" 45*c18ec02fSPetter Reinholdtsen 46*c18ec02fSPetter Reinholdtsen# Read config file if it is present. 47*c18ec02fSPetter Reinholdtsen[ -f /etc/default/$NAME ] && . /etc/default/$NAME 48*c18ec02fSPetter Reinholdtsen 49*c18ec02fSPetter Reinholdtsen# 50*c18ec02fSPetter Reinholdtsen# Function that starts the daemon/service. 51*c18ec02fSPetter Reinholdtsen# 52*c18ec02fSPetter Reinholdtsend_start() { 53*c18ec02fSPetter Reinholdtsen start-stop-daemon --start --quiet --exec $DAEMON -- $IPMIEVD_OPTIONS 54*c18ec02fSPetter Reinholdtsen} 55*c18ec02fSPetter Reinholdtsen 56*c18ec02fSPetter Reinholdtsen# 57*c18ec02fSPetter Reinholdtsen# Function that stops the daemon/service. 58*c18ec02fSPetter Reinholdtsen# 59*c18ec02fSPetter Reinholdtsend_stop() { 60*c18ec02fSPetter Reinholdtsen start-stop-daemon --stop --quiet --name $NAME --exec $DAEMON 61*c18ec02fSPetter Reinholdtsen} 62*c18ec02fSPetter Reinholdtsen 63*c18ec02fSPetter ReinholdtsenCODE=0 64*c18ec02fSPetter Reinholdtsen 65*c18ec02fSPetter Reinholdtsencase "$1" in 66*c18ec02fSPetter Reinholdtsen start) 67*c18ec02fSPetter Reinholdtsen [ "$VERBOSE" != no ] && log_begin_msg "Starting $DESC" "$NAME" 68*c18ec02fSPetter Reinholdtsen d_start || CODE=$? 69*c18ec02fSPetter Reinholdtsen [ "$VERBOSE" != no ] && log_end_msg $CODE 70*c18ec02fSPetter Reinholdtsen exit $CODE 71*c18ec02fSPetter Reinholdtsen ;; 72*c18ec02fSPetter Reinholdtsen stop) 73*c18ec02fSPetter Reinholdtsen log_begin_msg "Stopping $DESC" "$NAME" 74*c18ec02fSPetter Reinholdtsen d_stop || CODE=$? 75*c18ec02fSPetter Reinholdtsen log_end_msg $CODE 76*c18ec02fSPetter Reinholdtsen exit $CODE 77*c18ec02fSPetter Reinholdtsen ;; 78*c18ec02fSPetter Reinholdtsen restart|force-reload) 79*c18ec02fSPetter Reinholdtsen log_begin_msg "Restarting $DESC" "$NAME" 80*c18ec02fSPetter Reinholdtsen d_stop || true 81*c18ec02fSPetter Reinholdtsen sleep 1 82*c18ec02fSPetter Reinholdtsen d_start || CODE=$? 83*c18ec02fSPetter Reinholdtsen log_end_msg $CODE 84*c18ec02fSPetter Reinholdtsen exit $CODE 85*c18ec02fSPetter Reinholdtsen ;; 86*c18ec02fSPetter Reinholdtsen *) 87*c18ec02fSPetter Reinholdtsen echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 88*c18ec02fSPetter Reinholdtsen exit 1 89*c18ec02fSPetter Reinholdtsen ;; 90*c18ec02fSPetter Reinholdtsenesac 91*c18ec02fSPetter Reinholdtsen 92*c18ec02fSPetter Reinholdtsenexit 0 93