1#!/bin/sh 2# 3# Startup script for mcelog 4# 5# This should be customized for distribution standards 6# (using rc_status etc.) 7# The paths are hardcoded and are not automatically adjusted 8# for different prefix 9# 10### BEGIN INIT INFO 11# Provides: mcelog 12# Default-Start: 3 5 13# Default-Stop: 0 1 2 6 14# Short-Description: mcelog hardware error logging 15# Description: Start the mcelog hardware error logging. 16# This logs and handles CPU hardware errors on x86 systems. 17### END INIT INFO 18 19# put this is sysconfig 20 21# mcelog mode 22# valid values: daemon, trigger, cron 23# Recommended value daemon 24MCELOG_MODE=daemon 25 26# additional options to pass to the daemon 27# this only works in daemon mode 28# see the manpage for details. settings can be also 29# set in /etc/mcelog.conf 30MCELOG_OPTIONS="" 31 32# private settings 33MCELOG=${MCELOG:-/usr/sbin/mcelog} 34TRIGGER=/sys/devices/system/machinecheck/machinecheck0/trigger 35[ ! -x $MCELOG ] && ( echo "mcelog not found" ; exit 1 ) 36[ ! -r /dev/mcelog ] && ( echo "/dev/mcelog not active" ; exit 0 ) 37 38case "$MCELOG_MODE" in 39daemon) 40 ;; 41trigger) 42 ;; 43cron) 44 echo "mcelog not started" 45 exit 0 46 ;; 47*) 48 echo "Unknown mcelog mode $MCELOG_MODE. Valid daemon/trigger/cron" 49 exit 1 50esac 51 52case "$1" in 53start) 54 if [ "$MCELOG_MODE" = "daemon" ] ; then 55 echo "Starting mcelog daemon" 56 startproc $MCELOG --daemon $MCELOG_OPTIONS 57 elif [ -f "$TRIGGER" ] ; then 58 echo $MCELOG > "$TRIGGER" 59 else 60 echo No machine check capability 61 fi 62 ;; 63stop) 64 if [ "$MCELOG_MODE" = "daemon" ] ; then 65 echo "Stopping mcelog" 66 killproc -TERM $MCELOG 67 elif [ "$MCELOG_MODE" = "trigger" -a -f "$TRIGGER" ]; then 68 echo "" > "$TRIGGER" 69 else 70 echo mcelog not running 71 fi 72 ;; 73try-restart) 74 $0 status > /dev/null && $0 restart 75 ;; 76restart) 77 $0 stop 78 $0 start 79 ;; 80reload) 81 $0 try-restart 82 ;; 83force-reload) 84 $0 try-restart 85 ;; 86status) 87 if [ "$MCELOG_MODE" = "daemon" ] ; then 88 echo "Checking for mcelog" 89 checkproc $MCELOG 90 fi 91 ;; 92*) 93 echo "Usage: $0 {start|stop|try-restart|restart|status|force-reload|reload}" 94 exit 1 95esac 96 97 98