fancontrol script modifications

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

 



Hello :-)

Two new features are shown in the diff, based on the 3.3.2 version.

One provides for handling a stale PID file.

The other allows the PIDFILE value to be optionally configured.  This is
useful if the user wants to start fancontrol before the file system
containing /var/run is mounted (I have it configured as
/root/var/run/fancontrol.pid)

===== diff begins =====
--- fancontrol.org	2012-04-11 21:15:58.611000054 +0530
+++ fancontrol	2012-04-13 15:55:06.790123451 +0530
@@ -38,8 +38,6 @@
 #
 #

-PIDFILE="/var/run/fancontrol.pid"
-
 #DEBUG=1
 MAX=255

@@ -66,6 +64,11 @@
 	FCFANS=`egrep '^FCFANS=.*$' $1 | sed -e 's/FCFANS=//g'`
 	MINPWM=`egrep '^MINPWM=.*$' $1 | sed -e 's/MINPWM=//g'`
 	MAXPWM=`egrep '^MAXPWM=.*$' $1 | sed -e 's/MAXPWM=//g'`
+	PIDFILE=`egrep '^PIDFILE=.*$' $1 | sed -e 's/PIDFILE=//g'`
+    if [[ -z $PIDFILE ]]
+    then
+        PIDFILE='/var/run/fancontrol.pid'
+    fi

 	# Check whether all mandatory settings are set
 	if [[ -z ${INTERVAL} || -z ${FCTEMPS} || -z ${MINTEMP} || -z
${MAXTEMP} || -z ${MINSTART} || -z ${MINSTOP} ]]
@@ -205,6 +208,25 @@
 	return $outdated
 }

+# Check and write PID file
+function PIDfile {
+    local cmd my_name PID
+    if [[ -f "$PIDFILE" ]]
+    then
+        my_name="${0##*/}"
+        PID=`cat "$PIDFILE"`
+        cmd=`ps --pid "$PID" --format cmd --no-headers`
+        if [ "${cmd##*/}" = "$my_name" ]
+        then
+            echo "$my_name is already running with PID $PID" >&2
+            exit 1
+        else
+            echo "Refreshing stale PID file, $PIDFILE" >&2
+        fi
+    fi
+    echo $$ > "$PIDFILE"
+}
+
 # Check that all referenced sysfs files exist
 function CheckFiles {
 	local outdated=0
@@ -301,12 +323,7 @@
 fi
 CheckFiles || exit 1

-if [ -f "$PIDFILE" ]
-then
-	echo "File $PIDFILE exists, is fancontrol already running?" >&2
-	exit 1
-fi
-echo $$ > "$PIDFILE"
+PIDfile

 # $1 = pwm file name
 function pwmdisable()
===== diff ends =====

Best

Charles

_______________________________________________
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