b55f9a3
Index: edac-utils-0.9/src/etc/edac.init
b55f9a3
===================================================================
b55f9a3
--- edac-utils-0.9.orig/src/etc/edac.init
b55f9a3
+++ edac-utils-0.9/src/etc/edac.init
1e1f848
@@ -7,21 +7,31 @@
b55f9a3
 # Written by Mark Grondona <mgrondona@llnl.gov>
b55f9a3
 # UCRL-CODE-230739.
b55f9a3
 ###############################################################################
b55f9a3
-# chkconfig:      345 40 60
b55f9a3
+# chkconfig:      - 40 60
b55f9a3
 ###############################################################################
b55f9a3
 ### BEGIN INIT INFO
b55f9a3
 # Provides:       edac
b55f9a3
 # Required-Start: $named $time
b55f9a3
-# Default-Start:  3 5
b55f9a3
 # Default-Stop:   0 1 2 6
b55f9a3
 # Description:    Initialize EDAC drivers for machine hardware
b55f9a3
+# Short-Description: Initialize EDAC drivers for machine hardware
b55f9a3
 ### END INIT INFO
b55f9a3
 ###############################################################################
b55f9a3
 
b55f9a3
-SERVICE="edac"
b55f9a3
+if [ -f /etc/init.d/functions ] ; then
b55f9a3
+	. /etc/init.d/functions
b55f9a3
+elif [ -f /etc/rc.d/init.d/functions ] ; then
b55f9a3
+	. /etc/rc.d/init.d/functions
b55f9a3
+else
b55f9a3
+	exit 0;
b55f9a3
+fi
b55f9a3
 
b55f9a3
+SERVICE="edac"
b55f9a3
 PATH=/sbin:/usr/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/local/bin
b55f9a3
 EDAC=/usr/sbin/edac-ctl
1e1f848
+EDAC_UTIL=/usr/bin/edac-util
b55f9a3
+LOGGER="logger -t $SERVICE -p info"
b55f9a3
+SUBSYS=/var/lock/subsys/edac
b55f9a3
 
b55f9a3
 ###############################################################################
b55f9a3
 
1e1f848
@@ -30,25 +40,26 @@ service_start ()
b55f9a3
 # Start the service.  Required by LSB.
b55f9a3
 #
b55f9a3
   echo -n "Starting ${SERVICE}: "
b55f9a3
-  $EDAC --quiet --load
b55f9a3
-  rc=$?
b55f9a3
-  $EDAC --register-labels
b55f9a3
-  case $rc in 
b55f9a3
-    0) echo success ;;
b55f9a3
-    5) echo No EDAC support for this hardware. ;;
b55f9a3
-    *) echo failure ;;
b55f9a3
-  esac
b55f9a3
-
b55f9a3
+  $EDAC --register-labels 2>&1 | $LOGGER;
b55f9a3
+  rc=$?;
b55f9a3
+  if [ $rc -eq 0 ]; then
b55f9a3
+	daemon true;
b55f9a3
+	touch $SUBSYS;
b55f9a3
+  else
b55f9a3
+	daemon false;
b55f9a3
+  fi
1e1f848
+  echo;
b55f9a3
 }
b55f9a3
 
b55f9a3
 ###############################################################################
b55f9a3
 
b55f9a3
 service_stop ()
b55f9a3
 {
b55f9a3
-  echo -n "Disabling ${SERVICE}: "
b55f9a3
-  $EDAC --unload
b55f9a3
+  echo -n "Stopping ${SERVICE}: "
b55f9a3
+  daemon $EDAC --unload;
b55f9a3
   rc=$?
b55f9a3
-  [ $rc -eq 0 ] && echo success || echo failure
b55f9a3
+  rm -f $SUBSYS;
1e1f848
+  echo;
b55f9a3
 }
b55f9a3
 
b55f9a3
 ###############################################################################
1e1f848
@@ -57,7 +68,7 @@ service_status ()
1e1f848
 {
1e1f848
 # Print the current status of the service.  Required by LSB.
1e1f848
 #
1e1f848
-  $EDAC --status
1e1f848
+  $EDAC_UTIL --status
1e1f848
   rc=0
1e1f848
 }
1e1f848
 
1e1f848
@@ -75,9 +86,15 @@ case "$1" in
b55f9a3
   status)
b55f9a3
     service_status
b55f9a3
     ;;
b55f9a3
+  restart|reload)
b55f9a3
+    service_stop
b55f9a3
+    service_start
b55f9a3
+    ;;
b55f9a3
   *)
b55f9a3
-    COMMANDS="start|stop|status"
b55f9a3
+    COMMANDS="start|stop|status|restart|reload"
b55f9a3
     echo "Usage: $0 {${COMMANDS}}"
b55f9a3
     exit 1
b55f9a3
     ;;
b55f9a3
 esac
b55f9a3
+exit $rc;
b55f9a3
+