1

Когда fancontrol запускается из терминала, он работает нормально

# fancontrol
Loading configuration from /etc/fancontrol ...

Common settings:
  INTERVAL=2

Settings for /sys/devices/platform/it87.656/hwmon/hwmon[[:print:]]*/device/pwm1:
  Depends on /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon[[:print:]]*/device/temp1_input
  Controls /sys/devices/platform/it87.656/hwmon/hwmon[[:print:]]*/device/fan1_input
  MINTEMP=17
  MAXTEMP=53
  MINSTART=140
  MINSTOP=50
  MINPWM=0
  MAXPWM=255

Settings for /sys/devices/platform/it87.656/hwmon/hwmon[[:print:]]*/device/pwm3:
  Depends on /sys/devices/pci0000:00/0000:00:18.3/hwmon/hwmon[[:print:]]*/device/temp1_input
  Controls /sys/devices/platform/it87.656/hwmon/hwmon[[:print:]]*/device/fan2_input
  MINTEMP=17
  MAXTEMP=55
  MINSTART=140
  MINSTOP=50
  MINPWM=0
  MAXPWM=255

Enabling PWM on fans...
Starting automatic fan control...

Однако при запуске fancontrol в качестве службы (во время или после загрузки) происходит сбой.

# service fancontrol start
[ ok ] Starting fan speed regulator: fancontrol.
# service fancontrol status
[FAIL] fancontrol is not running ... failed!

В чем разница между запуском fancontrol как службы и вручную, что может привести к сбою?

Debian Wheezy Fancontrol initscript

#! /bin/sh

### BEGIN INIT INFO
# Provides:          fancontrol
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:
# Short-Description: fancontrol
# Description:       fan speed regulator
### END INIT INFO

. /lib/lsb/init-functions

[ -f /etc/default/rcS ] && . /etc/default/rcS
PATH=/bin:/usr/bin:/sbin:/usr/sbin
DAEMON=/usr/sbin/fancontrol
DESC="fan speed regulator"
NAME="fancontrol"
PIDFILE=/var/run/fancontrol.pid
CONF=/etc/fancontrol

test -x $DAEMON || exit 0

case "$1" in
  start)
    if [ -f $CONF ] ; then
        if $DAEMON --check 1>/dev/null 2>/dev/null ; then
            log_daemon_msg "Starting $DESC" "$NAME"
            start-stop-daemon --start --quiet --background --pidfile $PIDFILE --startas $DAEMON
            log_end_msg $?
        else
            log_failure_msg "Not starting fancontrol, broken configuration file; please re-run pwmconfig."
        fi
    else
        if [ "$VERBOSE" != no ]; then
            log_warning_msg "Not starting fancontrol; run pwmconfig first."
        fi
    fi
    ;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --stop --quiet --pidfile $PIDFILE --oknodo --startas $DAEMON
    rm -f $PIDFILE
    log_end_msg $?
    ;;
  restart)
    $0 stop

1 ответ1

0

Я чувствую себя глупо, следовало бы расследовать больше. Вот ответ, только если я все испорчу, или у кого-то еще есть такая же проблема. Кроме того, большое спасибо @Fiisch за советы и указание в правильном направлении.

При запуске fancontrol через #service fancontrol start или #fancontrol ошибки /usr /sbin /fancontrol не выводятся. Из-за ограничений материнской платы мои сенсоры определены как абсолютные пути. Поэтому я запустил /usr /sbin /fancontrol. Это вызывает ошибку

Configuration is too old, please run pwmconfig again

Поэтому я решил взглянуть на /usr /sbin /fancontrol, чтобы понять почему. Я нашел причину в строках 302-307:

# Check for configuration change
if [ -z "$DEVPATH" -o -z "$DEVNAME" ]
then
    echo "Configuration is too old, please run pwmconfig again" >&2
    exit 1
fi

Это просто детектор изменения конфигурации! с тех пор, как я указал абсолютные пути для своих датчиков, это не только не являлось необходимым, но и фактически вызывало ошибку. Так что я просто прокомментировал это.

## Check for configuration change
#if [ -z "$DEVPATH" -o -z "$DEVNAME" ]
#then
#   echo "Configuration is too old, please run pwmconfig again" >&2
#   exit 1
#fi

Вот и все! Fancontrol работает отлично и запускается во время загрузки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .