Fancontrol wird manuell gestartet, schlägt jedoch als Dienst fehl

3479
Jason.local

Wenn Fancontrol vom Terminal aus gestartet wird, funktioniert es einwandfrei

# 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... 

Beim Starten von fancontrol als Dienst (beim oder nach dem Start) schlägt dies jedoch fehl.

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

Was ist der Unterschied zwischen dem Starten von Fancontrol als Dienst und dem manuellen Ausführen, das dazu führen würde, dass es fehlschlägt?

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
Poste hier das Initscript (/etc/init.d/fancontrol), damit wir sehen können, was beim Bootstart passiert. Veröffentlichen Sie auch, welches Betriebssystem Sie verwenden. Einige schnelle Ideen: 1) verschiedene ENV-Variablen 2) Sudo-Befehl irgendwo innerhalb des Initscript && requiretty in der Sudo-Konfiguration Fiisch vor 9 Jahren 1
@Fiisch Im auf Debian Wheezy und Ive fügte das Fancontrol Initscript hinzu. Jason.local vor 9 Jahren 0
Versuchen Sie, `start-stop-daemon --start --pidfile /var/run/fancontrol.pid --startas / usr / sbin / fancontrol 'von Ihrem Terminal aus auszuführen und die Ergebnisse zu veröffentlichen. Versuchen Sie auch dasselbe, aber setzen Sie zuerst Ihren PATH auf den gleichen Wert wie im Initscript. Und bitte posten Sie die Ausgabe von "which fancontrol" aus Ihrer Bash-Session. :) PS: Entschuldigung für die Verzögerung. Ich hatte viel zu tun. Fiisch vor 9 Jahren 0

1 Antwort auf die Frage

0
Jason.local

Ich fühle mich dumm, hätte mehr nachforschen müssen. Hier ist die Antwort, nur wenn ich das vermassele oder jemand anderes hat das gleiche Problem. Vielen Dank auch an @Fiisch für Ratschläge und Hinweise in die richtige Richtung.

Beim Starten von fancontrol über #service fancontrol startoder #fancontrolwerden die Fehler von / usr / sbin / fancontrol nicht gedruckt. Aufgrund der Einschränkungen der Hauptplatine werden meine Sensoren als absolute Pfade definiert. Also lief ich / usr / sbin / fancontrol. Dies verursacht den Fehler

Configuration is too old, please run pwmconfig again 

Also entschied ich mich, einen Blick auf / usr / sbin / fancontrol zu werfen, um zu sehen, warum. Ich habe die Ursache in den Zeilen 302-307 gefunden:

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

Es ist nur ein einfacher Konfigurationsänderungsdetektor! da ich die absoluten wege für meine sensoren angegeben hatte, war dies nicht nur nicht notwendig, sondern verursachte tatsächlich den fehler. Also habe ich es nur kommentiert.

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

Das war's! fancontrol funktioniert jetzt einwandfrei und startet beim Booten.