FHEM lässt sich nicht mit fhem.service starten

Begonnen von ad.aastra, 20 April 2019, 10:40:59

Vorheriges Thema - Nächstes Thema

ad.aastra

Hallo,
eigentlich hatte ich noch nie den Bedarf eine Frage in dem Forum zu stellen da alle meine Fragen irgendwo schon einmal aufkamen.
Aber jetzt habe ich ein Problem das ich einfach nicht lösen kann.

Zu meinem System:
Meine FHEM Installation läuft auf einem Intel NUC Celeron J3455 Prozessor mit Debian 4.9.144-3.1
Ich habe vorher FHEM auf einem Raspberry PI 3 B+ betrieben.
Nach dem Umzug funktioniert eigentlich alles soweit nur wird der FHEM Service nicht gestartet und er lässt dich auch nicht manuell starten.
Bei der Eingabe von:

sudo invoke-rc.d fhem start

Bekomme ich folgende Fehlermeldung:

Job for fhem.service failed because the control process exited with error code.
See "systemctl status fhem.service" and "journalctl -xe" for details.
invoke-rc.d: initscript fhem, action "start" failed.
● fhem.service - FHEM Home Automation
   Loaded: loaded (/etc/systemd/system/fhem.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2019-04-20 10:33:17 CEST; 12ms ago
  Process: 638 ExecStart=/opt/fhem/perl fhem.pl configDB (code=exited, status=203/EXEC)

Apr 20 10:33:17 SmartHomeServer systemd[1]: Starting FHEM Home Automation...
Apr 20 10:33:17 SmartHomeServer systemd[1]: fhem.service: Control process exited, code=exited status=203
Apr 20 10:33:17 SmartHomeServer systemd[1]: Failed to start FHEM Home Automation.
Apr 20 10:33:17 SmartHomeServer systemd[1]: fhem.service: Unit entered failed state.
Apr 20 10:33:17 SmartHomeServer systemd[1]: fhem.service: Failed with result 'exit-code'.


Wenn ich FHEM wie folgt starte gibt es keine Probleme:

sudo -u fhem perl /opt/fhem/fhem.pl configDB


Die fhem.service sieht wie folgt aus:

# $Id: fhem.service 16001 2018-01-26 11:54:41Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target

[Service]
Type=forking
User=fhem
Group=dialout
WorkingDirectory=/opt/fhem
#ExecStart=/usr/bin/perl fhem.pl fhem.cfg
ExecStart=/opt/fhem/perl fhem.pl configDB
RestartSec=2

[Install]
WantedBy=multi-user.target


Vielleicht hat hier im Forum jemand eine Idee wo hier der Fehler liegen könnt.
Vielen Dank schon mal in voraus.

MadMax-FHEM

Update rc-d ist initd und da gehört ein Startscript unter /etc/init.d/ dazu...

.services Dateien ist systemd und da liegt die .service Datei unter /etc/systemd/system/ und wird auch anders "angemeldet"...

Such mal nach systemd Service etc.

Kurz da nur Handy grad...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

ad.aastra

Mhh Danke schon mal,

ich habe es jetzt mit folgendem Aufruf versucht:

sudo systemctl start fhem.service


Was den gleichen Fehler bring:

XXX@XXX:~$ sudo systemctl status fhem.service
● fhem.service - FHEM Home Automation
   Loaded: loaded (/etc/systemd/system/fhem.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2019-04-20 11:04:44 CEST; 22s ago
  Process: 636 ExecStart=/opt/fhem/perl fhem.pl configDB (code=exited, status=203/EXEC)

Apr 20 11:04:44 SmartHomeServer systemd[1]: Starting FHEM Home Automation...
Apr 20 11:04:44 SmartHomeServer systemd[1]: fhem.service: Control process exited, code=exited status=203
Apr 20 11:04:44 SmartHomeServer systemd[1]: Failed to start FHEM Home Automation.
Apr 20 11:04:44 SmartHomeServer systemd[1]: fhem.service: Unit entered failed state.
Apr 20 11:04:44 SmartHomeServer systemd[1]: fhem.service: Failed with result 'exit-code'.


Vielleicht denke ich in die total falsche Richtung. Oder ich muss mich in das Thema noch weiter einlesen....

MadMax-FHEM

Hast du den fhem service auch "enabled"!?
Also selbes Kommando (glaub ich) nur mit enable...

Wo hast du die Service-Datei her?
(gibt glaube ich auch ein fhem Wiki dazu)
Wie hast du fhem installiert?

Autostart sollte eigentl. automatisch eingerichtet werden...

Du kannst dir mit journalctrl auch mehr Fehler ausgeben lassen...
Mal nach journalctrl und Logausgaben suchen...

So sieht man ja nicht, was nicht geht...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CoolTux

Schau mal in das FHEM logfile ob es dort Fehlermeldungen gibt.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ad.aastra







Apr 20 11:44:26 SmartHomeServer systemd[1]: Starting FHEM Home Automation...
Apr 20 11:44:26 SmartHomeServer systemd[1]: Starting Permit User Sessions...
Apr 20 11:44:26 SmartHomeServer systemd[394]: fhem.service: Failed at step EXEC spawning /opt/fhem/perl: No such file
Apr 20 11:44:26 SmartHomeServer systemd[1]: Started Regular background program processing daemon.
Apr 20 11:44:26 SmartHomeServer systemd[1]: fhem.service: Control process exited, code=exited status=203
Apr 20 11:44:26 SmartHomeServer systemd[1]: Failed to start FHEM Home Automation.
Apr 20 11:44:26 SmartHomeServer systemd[1]: fhem.service: Unit entered failed state.
Apr 20 11:44:26 SmartHomeServer systemd[1]: fhem.service: Failed with result 'exit-code'.


Hilft das weiter?

ad.aastra

Dies war bei der Neuinstallation von FHEM so eingestellt. Ich hatte auch erst die Datei in init.d gesucht und nichts gefunden bis ich darauf gestoßen bin.
in der fhem.service hab den Pfad zu FHEM abgeändert und configDB eingefügt. Als Test noch RestartSec=2 auf 2 gestellt.
In der FHEM LOG ist nichts (wahrscheinlich weil FHEM gar nicht erst startet)

Wenn es auf eine andere weiße besser geht würde ich den Service Start auch anders machen.

MadMax-FHEM

Das "executable" perl liegt ja auch nicht unter /opt/fhem

Vermutlich /usr/bin oder so...

Mit 'which perl' auf der Console solltest du den Pfad bekommen...

Vermutlich reicht aber auch schon die "Startzeile" so zu ändern:

ExecStart=/usr/bin/perl fhem.pl config.db

Bzw. hab grad gesehen, da ist wohl beim "Abändern" der Startzeile der Fehler passiert... ;)

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

CoolTux

Haha hast Recht. Mensch das habe ich gar nicht gesehen.
Bitte noch mal korrekt abschreiben die Start Zeile.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

ad.aastra

Hallo Joachim,
danke für die Hilfe... Manchmal ist man echt blind...
Der Service lässt sich jetzt starten. Beim hochfahren geht es zwar noch nicht aber das liegt daran das das Netzlaufwerk scheinbar zu spät gemountet wird. Da muss ich mal  noch genauer nachschauen:
Habs mal mit "Requires=autofs.service" versucht (Bei MySQL hat das funktioniert), das hat aber nicht geholfen. Werde es aber noch herausfinden. Das Problem wie am Anfang beschrieben ist behoben. 

Nochmals Vielen Danke!
Markus



betateilchen

Zitat von: ad.aastra am 20 April 2019, 15:35:48
Habs mal mit "Requires=autofs.service" versucht (Bei MySQL hat das funktioniert), das hat aber nicht geholfen. Werde es aber noch herausfinden.

Das Requires= alleine legt noch keine Reihenfolge fest, sondern sorgt lediglich dafür, dass der entsprechende Dienst überhaupt gestartet wird. Du kannst auch die Reihenfolge festlegen:


Requires=autofs.service
After=autofs.service


-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!