Rev 4 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/bin/sh
#
# Startup script for mcelog
#
# This should be customized for distribution standards
# (using rc_status etc.)
# The paths are hardcoded and are not automatically adjusted
# for different prefix
#
# chkconfig: 35 50 50
# description: mcelog hardware error logging
#
### BEGIN INIT INFO
# Provides: mcelog
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: mcelog hardware error logging
# Description: Start the mcelog hardware error logging.
# This logs and handles CPU hardware errors on x86 systems.
### END INIT INFO
# pull in sysconfig settings
[ -f /etc/sysconfig/mcelogd ] && . /etc/sysconfig/mcelogd
# Source function library.
. /etc/init.d/functions
# private settings
MCELOG=${MCELOG:-/usr/sbin/mcelog}
TRIGGER=/sys/devices/system/machinecheck/machinecheck0/trigger
LOCKFILE="/var/lock/subsys/mcelogd"
[ ! -x $MCELOG ] && ( echo "mcelog not found" ; exit 1 )
[ ! -r /dev/mcelog ] && ( echo "/dev/mcelog not active" ; exit 0 )
case "$MCELOG_MODE" in
daemon)
;;
trigger)
;;
cron)
echo "mcelog not started"
exit 0
;;
*)
echo "Unknown mcelog mode $MCELOG_MODE. Valid daemon/trigger/cron"
exit 1
esac
case "$1" in
start)
if [ -f $LOCKFILE ]; then
exit 0
fi
if [ "$MCELOG_MODE" = "daemon" ] ; then
echo "Starting mcelog daemon"
daemon $MCELOG --daemon $MCELOG_OPTIONS
touch $LOCKFILE
elif [ -f "$TRIGGER" ] ; then
echo $MCELOG > "$TRIGGER"
touch $LOCKFILE
else
echo No machine check capability
fi
;;
stop)
if [ "$MCELOG_MODE" = "daemon" ] ; then
echo "Stopping mcelog"
killproc $MCELOG -TERM
rm -f $LOCKFILE
elif [ "$MCELOG_MODE" = "trigger" -a -f "$TRIGGER" ]; then
echo "" > "$TRIGGER"
rm -f $LOCKFILE
else
echo mcelog not running
fi
;;
try-restart)
$0 status > /dev/null && $0 restart
;;
restart)
$0 stop
$0 start
;;
reload)
$0 try-restart
;;
force-reload)
$0 try-restart
;;
status)
if [ "$MCELOG_MODE" = "daemon" ] ; then
echo "Checking for mcelog"
status $MCELOG
fi
;;
*)
echo "Usage: $0 {start|stop|try-restart|restart|status|force-reload|reload}"
exit 1
esac