diff options
Diffstat (limited to 'contrib/ipmievd.init.suse')
-rwxr-xr-x | contrib/ipmievd.init.suse | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/contrib/ipmievd.init.suse b/contrib/ipmievd.init.suse new file mode 100755 index 0000000..a1e216c --- /dev/null +++ b/contrib/ipmievd.init.suse @@ -0,0 +1,212 @@ +#!/bin/bash +# +# System startup script for ipmievd +# Based on skeleton.compat example script +# Copyright (C) 1995--2005 Kurt Garloff, SUSE / Novell Inc. +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, +# USA. +# +# Note: This template uses functions rc_XXX defined in /etc/rc.status on +# UnitedLinux/SUSE/Novell based Linux distributions. However, it will work +# on other distributions as well, by using the LSB (Linux Standard Base) +# or RH functions or by open coding the needed functions. +# Read http://www.tldp.org/HOWTO/HighQuality-Apps-HOWTO/ if you prefer not +# to use this template. +# +# chkconfig: 345 99 00 +# description: ipmievd daemon +# +### BEGIN INIT INFO +# Provides: ipmievd +# Required-Start: $syslog ipmi +# Should-Start: $time +# Required-Stop: $syslog ipmi +# Should-Stop: $time +# Default-Start: 3 4 5 +# Default-Stop: 0 1 2 6 +# Short-Description: ipmievd daemon to send events to syslog +# Description: Start ipmievd to read events from BMC and +# log them to syslog. Events correspond to hardware faults, +# state transitions such as power on and off, and sensor +# readings such as temperature, voltage and fan speed that +# are abnormal. +### END INIT INFO +# + +# Check for missing binaries (stale symlinks should not happen) +# Note: Special treatment of stop for LSB conformance +IPMIEVD_BIN=/usr/sbin/ipmievd +test -x $IPMIEVD_BIN || { echo "$IPMIEVD_BIN not installed"; + if [ "$1" = "stop" ]; then exit 0; + else exit 5; fi; } + +# Check for existence of needed config file and read it +IPMIEVD_CONFIG=/etc/sysconfig/ipmievd +test -r $IPMIEVD_CONFIG || { echo "$IPMIEVD_CONFIG does not exist"; + if [ "$1" = "stop" ]; then exit 0; + else exit 6; fi; } + +# Read config +. $IPMIEVD_CONFIG + +if test -e /etc/rc.status; then + # SUSE rc script library + . /etc/rc.status +else + export LC_ALL=POSIX + _cmd=$1 + declare -a _SMSG + if test "${_cmd}" = "status"; then + _SMSG=(running dead dead unused unknown reserved) + _RC_UNUSED=3 + else + _SMSG=(done failed failed missed failed skipped unused failed failed reserved) + _RC_UNUSED=6 + fi + if test -e /lib/lsb/init-functions; then + # LSB + . /lib/lsb/init-functions + echo_rc() + { + if test ${_RC_RV} = 0; then + log_success_msg " [${_SMSG[${_RC_RV}]}] " + else + log_failure_msg " [${_SMSG[${_RC_RV}]}] " + fi + } + # TODO: Add checking for lockfiles + checkproc() { return pidofproc ${1+"$@"} >/dev/null 2>&1; } + elif test -e /etc/init.d/functions; then + # RHAT + . /etc/init.d/functions + echo_rc() + { + #echo -n " [${_SMSG[${_RC_RV}]}] " + if test ${_RC_RV} = 0; then + success " [${_SMSG[${_RC_RV}]}] " + else + failure " [${_SMSG[${_RC_RV}]}] " + fi + } + checkproc() { return status ${1+"$@"}; } + start_daemon() { return daemon ${1+"$@"}; } + else + # emulate it + echo_rc() { echo " [${_SMSG[${_RC_RV}]}] "; } + fi + rc_reset() { _RC_RV=0; } + rc_failed() + { + if test -z "$1"; then + _RC_RV=1; + elif test "$1" != "0"; then + _RC_RV=$1; + fi + return ${_RC_RV} + } + rc_check() + { + return rc_failed $? + } + rc_status() + { + rc_failed $? + if test "$1" = "-r"; then _RC_RV=0; shift; fi + if test "$1" = "-s"; then rc_failed 5; echo_rc; rc_failed 3; shift; fi + if test "$1" = "-u"; then rc_failed ${_RC_UNUSED}; echo_rc; rc_failed 3; shift; fi + if test "$1" = "-v"; then echo_rc; shift; fi + if test "$1" = "-r"; then _RC_RV=0; shift; fi + return ${_RC_RV} + } + rc_exit() { exit ${_RC_RV}; } + rc_active() + { + if test -z "$RUNLEVEL"; then read RUNLEVEL REST < <(/sbin/runlevel); fi + if test -e /etc/init.d/S[0-9][0-9]${1}; then return 0; fi + return 1 + } +fi + +# Reset status of this service +rc_reset + +# Return values acc. to LSB for all commands but status: +# 0 - success +# 1 - generic or unspecified error +# 2 - invalid or excess argument(s) +# 3 - unimplemented feature (e.g. "reload") +# 4 - user had insufficient privileges +# 5 - program is not installed +# 6 - program is not configured +# 7 - program is not running +# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl) +# +# Note that starting an already running service, stopping +# or restarting a not-running service as well as the restart +# with force-reload (in case signaling is not supported) are +# considered a success. + +case "$1" in + start) + echo -n "Starting ipmievd " + start_daemon $IPMIEVD_BIN $IPMIEVD_OPTIONS + rc_status -v + ;; + stop) + echo -n "Shutting down ipmievd " + killproc -TERM $IPMIEVD_BIN + rc_status -v + ;; + try-restart|condrestart) + ## Do a restart only if the service was active before. + ## Note: try-restart is now part of LSB (as of 1.9). + ## RH has a similar command named condrestart. + if test "$1" = "condrestart"; then + echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}" + fi + $0 status + if test $? = 0; then + $0 restart + else + rc_reset # Not running is not a failure. + fi + rc_status + ;; + restart) + $0 stop + $0 start + rc_status + ;; + force-reload) + echo -n "Reload service ipmievd " + $0 try-restart + rc_status + ;; + reload) + rc_failed 3 + rc_status -v + ;; + status) + echo -n "Checking for service ipmievd " + checkproc $IPMIEVD_BIN + rc_status -v + ;; + *) + echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload| reload}" + exit 1 + ;; +esac +rc_exit |