#! /bin/sh ### BEGIN INIT INFO # Provides: ipmievd # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: IPMI event daemon # Description: ipmievd is a daemon which will listen for events # from the BMC that are being sent to the SEL and # also log those messages to syslog. ### END INIT INFO # # Author: Elmar Hoffmann # Licence: This script is public domain using the same # licence as ipmitool itself. # Modified by: Petter Reinholdtsen # Jörg Frings-Fürst 2014-06-01 set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="IPMI event daemon" NAME=ipmievd DAEMON=/usr/sbin/$NAME PIDFILE=/var/run/$NAME.pid0 SCRIPTNAME=/etc/init.d/$NAME ENABLED=true # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 . /lib/lsb/init-functions test -r /etc/default/rcS && . /etc/default/rcS # Options used by ipmievd. # # "open" uses the asynchronous event notification from the OpenIPMI # kernel driver, "sel" uses active polling of the contents of the SEL # for new events. # # Need to force 'daemon' mode, to make sure messages are sent to # syslog and the program forks into the background. # # Se ipmievd(8) for more info. IPMIEVD_OPTIONS="open daemon" # # requested kernelmodules # #REQMODULES="ipmi_devintf ipmi_msghandler ipmi_poweroff ipmi_si ipmi_watchdog" REQMODULES="" # Read config file if it is present. [ -f /etc/default/$NAME ] && . /etc/default/$NAME test "$ENABLED" != "false" || exit 0 # Backwards compatibility with version 1.8.6-2 and 1.8.6-1. The # variable was renamed to be compatible with upstream, SuSe and RedHat. if [ -n "$IPMIEVD_OPTS" ]; then echo "warning: /etc/default/$NAME variable IPMIEVD_OPTS should be renamed to IPMIEVD_OPTIONS" IPMIEVD_OPTIONS="$IPMIEVD_OPTS" fi # # function to load requested kernelmodules do_modprobe() { if [ -x /sbin/modprobe -a -f /proc/modules ] then modprobe -q "$1" || true fi } # # Function that starts the daemon/service. # d_start() { start-stop-daemon --start --quiet --exec $DAEMON --pidfile $PIDFILE -- $IPMIEVD_OPTIONS } # # Function that stops the daemon/service. # d_stop() { start-stop-daemon --stop --oknodo --quiet --name $NAME --exec $DAEMON --pidfile $PIDFILE } CODE=0 case "$1" in start) # load kernelmodules for rmod in ${REQMODULES} do do_modprobe ${rmod} done [ "$VERBOSE" != no ] && log_begin_msg "Starting $DESC" "$NAME" d_start || CODE=$? [ "$VERBOSE" != no ] && log_end_msg $CODE exit $CODE ;; stop) log_begin_msg "Stopping $DESC" "$NAME" d_stop || CODE=$? log_end_msg $CODE exit $CODE ;; restart|force-reload) log_begin_msg "Restarting $DESC" "$NAME" d_stop || true sleep 1 d_start || CODE=$? log_end_msg $CODE exit $CODE ;; status) status_of_proc $DAEMON $NAME ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2 exit 1 ;; esac exit 0