#!/bin/sh # description: sensors is used for monitoring motherboard sensor values. # config: /etc/sysconfig/sensors # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # See also the lm_sensors homepage at: # http://www.lm-sensors.org # It uses a config file /etc/sysconfig/sensors that contains the modules to # be loaded/unloaded. That file is sourced into this one. # The format of that file a shell script that simply defines the modules # in order as normal shell variables with the special names: # MODULE_1, MODULE_2, MODULE_3, etc. if grep -q sysfs /proc/mounts; then WITHSYS=1 else WITHSYS=0 fi if [ $WITHSYS == "0" ]; then # If sensors isn't supported by the kernel, try loading the module... [ -e /proc/sys/dev/sensors ] || /sbin/modprobe i2c-proc >/dev/null 2>&1 # Don't bother if /proc/sensors still doesn't exist, kernel doesn't have # support for sensors. [ -e /proc/sys/dev/sensors ] || exit 0 # If sensors was not already running, unload the module... [ -e /var/lock/subsys/lm_sensors ] || /sbin/modprobe -r i2c-proc >/dev/null 2>&1 fi CONFIG=/etc/sysconfig/lm_sensors [ -r "$CONFIG" ] || exit 0 grep '^MODULE_' $CONFIG >/dev/null 2>&1 || exit 0 # Load config file . "$CONFIG" PSENSORS=/usr/local/bin/sensors if [ ! -x $PSENSORS ]; then PSENSORS=/usr/bin/sensors fi # Source function library. . /etc/rc.d/functions RETVAL=0 prog="lm_sensors" start() { echo -n "Starting $prog: loading module " modules=`grep \^MODULE_ $CONFIG | wc -l | tr -d ' '` i=0 while [ $i -lt $modules ] ; do module=`eval echo '$'MODULE_$i` echo -n "${module} " /sbin/modprobe $module >/dev/null 2>&1 i=`expr $i + 1` done $PSENSORS -s RETVAL=$? if [ $RETVAL -eq 0 ] && touch /var/lock/subsys/lm_sensors ; then print_status success echo else print_status failure echo fi } stop() { echo -n "Stopping $prog: " modules=`grep \^MODULE_ $CONFIG | wc -l | tr -d ' '` i=`expr $modules` while [ $i -ge 0 ] ; do module=`eval echo '$'MODULE_$i` /sbin/modprobe -r $module >/dev/null 2>&1 i=`expr $i - 1` done if [ $WITHSYS == "0" ]; then /sbin/modprobe -r i2c-proc >/dev/null 2>&1 fi RETVAL=$? if [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/lm_sensors ; then print_status success echo else print_status failure echo fi } dostatus() { $PSENSORS RETVAL=$? } restart() { stop start RETVAL=$? } condrestart() { [ -e /var/lock/subsys/lm_sensors ] && restart || : } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) dostatus ;; restart|reload) restart ;; condrestart) condrestart ;; *) echo "Usage: $0 {start|stop|status|restart|reload|condrestart}" exit 1 esac exit $RETVAL