[Fancontrol] better support for init script error handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Some months ago, the /etc/fancontrol syntax changed, and fancontrol exited right after startup, but the init script stated success.

Currently there is no reliable way for a init script to check if fancontrol started up properly.

As fancontrol is a deamon preventing hardware damage, reliability should be of first priority.

I would suggest adding a argument to fancontrol that makes it start up, check config syntax and write permissions, and than fork to the background, or return a positive exit code.


I wrote a kind of proof of concept that simply uses the existing bash-script and "forks" by reexecuting itself in the background:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

diff -ru lm_sensors-3.1.2-1/usr/sbin/fancontrol lm_sensors-3.1.2-1_pyropeter/usr/sbin/fancontrol --- lm_sensors-3.1.2-1/usr/sbin/fancontrol 2010-02-03 03:45:15.000000000 +0100 +++ lm_sensors-3.1.2-1_pyropeter/usr/sbin/fancontrol 2010-03-07 01:37:09.000000000 +0100
@@ -5,7 +5,9 @@
 #
 # Version 0.70
 #
-# Usage: fancontrol [CONFIGFILE]
+# Usage: fancontrol [-D] [CONFIGFILE]
+#
+# (-D causes fancontrol to 'fork' to the background after some tests)
 #
 # Dependencies:
 #   bash, egrep, sed, cut, sleep, readlink, lm_sensors :)
@@ -43,6 +45,12 @@
 #DEBUG=1
 MAX=255

+DAEMON=0
+if [ "$1" = "-D" ]; then
+    DAEMON=1
+    shift
+fi
+
 declare -i pwmval

 function LoadConfig {
@@ -303,7 +311,6 @@
     echo "File $PIDFILE exists, is fancontrol already running?"
     exit 1
 fi
-echo $$ > "$PIDFILE"

 # $1 = pwm file name
 function pwmdisable()
@@ -475,6 +482,14 @@
     let fcvcount=$fcvcount+1
 done

+if [ "$DAEMON" -gt 0 ]; then
+    echo "Forking..."
+    $0 $* &> /dev/null &
+    exit 0
+fi
+
+echo $$ > "$PIDFILE"
+
 echo 'Starting automatic fan control...'

 # main loop calling the main function at specified intervals

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

I am not subscribed to this mailing list, so you need to CC me.

--
irc: PyroPeter at freenode


_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux