#!/bin/bash # description: sensors is used for monitoring motherboard sensor values. # config: /etc/conf.d/lm_sensors # See also the lm_sensors homepage at: # http://www2.lm-sensors.nu/~lm78/index.html # It uses a config file /etc/conf.d/lm_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. . /etc/rc.conf . /etc/rc.d/functions PSENSORS=/usr/bin/sensors 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 ] || /usr/bin/modprobe i2c-proc &>/dev/null # Don't bother if /proc/sensors still doesn't exist, kernel doesn't have support for sensors. if ! [ -e /proc/sys/dev/sensors ]; then echo "lm_sensors: kernel does not have sensors support" stat_fail fi # If sensors was not already running, unload the module... [ -e /var/run/daemons/sensors ] || /usr/bin/modprobe -r i2c-proc &>/dev/null fi if [ -e /etc/conf.d/lm_sensors ]; then CONFIG=/etc/conf.d/lm_sensors elif [ -e /etc/sysconfig/lm_sensors ]; then # Moving config to new Arch-specific location mv /etc/sysconfig/lm_sensors /etc/conf.d/lm_sensors CONFIG=/etc/conf.d/lm_sensors fi case "$1" in start) stat_busy "Starting Up Sensors" if [ -r "$CONFIG" ]; then . "$CONFIG" modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ') i=0 while [ $i -lt $modules ] ; do module=$(eval echo '$'MODULE_$i) # echo starting module __${module}__ #debug /usr/bin/modprobe $module &>/dev/null i=$(expr $i + 1) done fi $PSENSORS -s if [ $? -gt 0 ]; then stat_fail else add_daemon sensors stat_done fi ;; stop) stat_busy "Shutting Down Sensors" if [ -r "$CONFIG" ]; then . "$CONFIG" modules=$(grep \^MODULE_ $CONFIG | wc -l | tr -d ' ') i=$(expr $modules - 1) while [ $i -ge 0 ] ; do module=$(eval echo '$'MODULE_$i) # echo stoping module __${module}__ #debug /usr/bin/modprobe -r $module &>/dev/null i=$(expr $i - 1) done fi if [ $WITHSYS == "0" ]; then /usr/bin/modprobe -r i2c-proc &>/dev/null fi if [ $? -gt 0 ]; then stat_fail else rm_daemon sensors stat_done fi ;; status) $PSENSORS ;; restart) $0 stop sleep 1 $0 start ;; condrestart) [ -e /var/run/daemons/sensors ] && $0 restart || : ;; *) echo "Usage: $0 {start|stop|restart|status|condrestart}" esac exit 0