[gelöst]FHEM systemd Autostart

Begonnen von brown78, 29 November 2018, 14:49:37

Vorheriges Thema - Nächstes Thema

brown78

Hallo zusammen,

ich habe meine FHEM Installation von jessie nach stretch migriert. Leider funktioniert der Autostart von FHEM nicht. Nach dem Reboot per ssh und service fhem start, startet FHEM ohne Probleme.
Folgendes liefert, nach einem Reboot
service fhem status
● fhem.service - FHEM Home Automation
   Loaded: loaded (/etc/systemd/system/fhem.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Thu 2018-11-29 14:41:04 CET; 18s ago
  Process: 926 ExecStart=/usr/bin/perl fhem.pl fhem.cfg (code=exited, status=19)

Nov 29 14:41:03 Homeserver systemd[1]: fhem.service: Unit entered failed state.
Nov 29 14:41:03 Homeserver systemd[1]: fhem.service: Failed with result 'exit-code'.
Nov 29 14:41:04 Homeserver systemd[1]: fhem.service: Service hold-off time over, scheduling restart.
Nov 29 14:41:04 Homeserver systemd[1]: Stopped FHEM Home Automation.
Nov 29 14:41:04 Homeserver systemd[1]: fhem.service: Start request repeated too quickly.
Nov 29 14:41:04 Homeserver systemd[1]: Failed to start FHEM Home Automation.
Nov 29 14:41:04 Homeserver systemd[1]: fhem.service: Unit entered failed state.
Nov 29 14:41:04 Homeserver systemd[1]: fhem.service: Failed with result 'exit-code'.


Vor dieser Abfrage, hatte ich bereits schon den Autostart "abgeschaltet" mit:
systemctl disable fhem
Kann es sein, dass von noch irgendwo fhem gestartet wird, und das den Fehler verursacht?

FHEM feature level 5.9
fhem.pl           17528 2018-10-14 11:53:38Z rudolfkoenig

EDIT: Scheint mein Fehler gewesen zu sein, habe in raspi-config jetzt eingestellt, dass beim Booten auf das Netwerk gewartet wird. Nun startet FHEM automatisch mit, trotz systemctl disable fhem[/b]

Beta-User

Schau zum einen mal nach, ob noch irgendwas in /etc/init.d steht. Das kann ggf. raus.

Ansonsten sollte im FHEM-log was zu finden sein?
Vielleicht hilft auch https://wiki.fhem.de/wiki/FHEM_startet_nicht_-_Tipps_zur_Fehlersuche
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

brown78

Danke, hat sich aber schon erledigt, siehe mein Edit.
Fhem.log hatte nichts gebracht, da fhem ja nicht gestartet war.

Beta-User

Hmmm, du solltest dir m.E. die Zusammenhänge nochmal ansehen.

Wenn FHEM startet, obwohl es als service deaktiviert ist, ist init.d noch aktiv (das mag im Moment noch ok sein, kann dich aber irgendwann einholen, wenn du nochmal die Distri upgradest). Würde also auf einen Wechsel zu "pure" systemd hinarbeiten...
FHEM mag es nicht, wenn es keine Systemzeit hat. Das hardwaremäßig über raspi-config+Netz zu lösen, mag zwar gehen, ist aber m.E. nur die zweit- oder drittbeste Lösung: Die beste ist das Einbauen einer RTC, die andere, häufig genutzte Variante ist eine funktionierende SW-Uhr zu verwenden oder systemd anzuweisen, FHEM erst bei Netzwerkverfügbarkeit zu starten. Würde zur RTC raten.

Wie dem auch sei: [gelöst]? (ersten Post editieren und Titel anpassen)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

brown78

In /etc/init.d/ ist keine fhem datei vorhanden, wo könnte ich sonst noch nachsehen? Klar geht es momentan, aber dass FHEM startet obwohl deaktiviert würde ich schon gern rausfinden können. Ich denke in meinem Fall ist es egal wie angebracht, auf die Netzwerkverbinung zu warten, da die logs nicht auf die SD-Karte geschreiben werden, sondern auf ein NAS ebenso die automatischen Backups. Aber eine RTC habe ich eh schon rum liegen die kommt dann auf jedenfall noch mit rein. Kann natürlich sein, dass FHEM auf die Systemzeit wartet, und die zwecks NTP und noch nicht verbundenem Netzwerk nicht da ist. Sobald ich Zeit habe die RTC reinzubasteln, werde ich das auf jedenfall nochmal überprüfen. Danke für den Hinweis!

Beta-User

Na ja, wenn es da in init.d nix gibt, wird es schwierig rauszufinden, wo FHEM sonst noch so gestartet wird...
Könnte in /etc/rc.local liegen, ein chronjob sein oder noch was anderes. Da müßtest du halt wissen, was du in grauer Vorzeit da aus welchen Gründen gemacht hast ;) , es war jedenfalls keine mir bekannte Standardvariante.

Da ich keinen Schimmer habe, ob ggf. das Logging gepuffert wird, wenn kein Netz da ist, kann ich auch nicht sagen, ob es in der Konstellation Sinn macht, den PI "isoliert" hochzufahren; m.E. wäre das trotzdem sinnvoll, (jedenfalls, wenn das nicht zu Abstürzen führt), da logging für meine Begriffe sekundär ist; wichtiger ist mir, dass die Automatik läuft.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

brown78

#6
An Cronjobs kann es nicht liegen, ich habe stretch neu aufgesetzt und nur die FHEM eigenen Ordner rüber kopiert. rc.local könnte ich noch nachsehen, ich glaube da habe ich was gemacht, weil anfangs der autostart nicht ging...
Wenn kein Zugriff auf die Log bzw. Backup Ordner besteht, dann schmiert FHEM auch ab, das bekommt man aber über den systemd status raus, hatte ich nämlich auch - hab den Ordner für die Logs gemountet, aber den Benutzer nicht angepasst...
Ich schau mir das nochmal im Detail an, wenn ich auf das Netzwerk warte, geht ja alles ohne Probleme, und merklich länger dauert das Hochfahren auch nicht. Im Normalfall wird der Server ja auch nicht ständig neu gestartet.

EDIT: Da war tatsächlich noch service fhem start in der rc.local eingetragen! Hab ich gelöscht, FHEM per systemctl disabled - FHEM startet nicht systemctl enabled und es startet - allerdings immer noch mit "warte auf Netzwerk"

Beta-User

Ahh, jetzt habe ich auch verstanden, was "migriert" bedeuten soll - du hast also das OS frisch installiert, danach aber scheinbar nicht auch fhem neu (apt-get) installiert (sonst wäre systemd ordentlich eingerichtet gewesen) und dann darauf das backup der alten Installation wiederhergestellt, sondern einfach den /opt/fhem-Ordner rüberkopiert (oder die wichtigen Daten daraus)...

Auch eine Variante. Könnte aber sein, dass wichtige (Perl-) Module fehlen, oder hast du das fhem-log schon durchgesehen?
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

brown78

Naja nicht ganz, FHEM habe ich schon frisch installiert /nightly aber die ganzen Ordner einfach rüber kopiert. Ja die fehlenden Module (json, soap, telnet) habe ich bereits nachinstalliert. Das log ist soweit sauber, außer dass die CULs nicht initialisiert werden können (die sind auch noch nicht angeschlossen).
Meine "alte" Installation auf jessie läuft noch auf nem anderen Raspi (hab insgesamt 2 3er und 3 zeros). Komplett umziehen kann ich noch nicht, da ich die RaspBee Zigbee Bridge im Einsatz habe, und die aktuelle (auf stretch benötigte) Version lässt die Verbindung mit FHEM nicht zu - Dresden Elektronik ist schon dran :D

brown78

Nochmal als Ergänzung:

Der fhem.service hat schon
Wants=network.target
After=network.target


Also habe ich mir die ursprüngliche Fehlermeldung nochmal angesehen:
Nov 29 14:41:04 Homeserver systemd[1]: fhem.service: Start request repeated too quickly.
Also der Service wurde zu schnell hintereinander neu gestartet.

Nach kurzer Recherche habe ich dann nach
Restart=always

Noch die Zeile
RestartSec=2
Eingefügt. Nur wird ein Restart nicht nach standartmäßigen 100ms, sondern nach 2sek. ausgeführt. Anschließend habe ich mit raspi-config das Warten auf die Netzwerkverbindung deaktiviert und einen Reboot gemacht.
Siehe da, FHEM startet ohne Probleme.

sinus61

Danke für den Hinweis, hatte gerade das gleiche Problem. Neuer Raspi, Stretch installiert, FHEM installiert und läuft. Dann das FHEM Backup vom alten Raspi aufgespielt und die gleicher Fehler wie bei Dir.

Mit Deiner Lösung "RestartSec=2" läuft wieder alles.

Xguide

@brown78,

danke für den Tipp mit
RestartSec=2

Ich ziehe gerade mein fhem auf einen NUC mit Proxmox um und immer wenn ich ein shutdown restart gemacht habe, hat das System zwei Mal neu gestartet. Ich habe RestartSec jetzt auf 10 gesetzt und das Problem ist behoben.

Thanx Marcel

An alle die es nicht wissen, der Service liegt hier:
cd /etc/systemd/system/
bspw. mit nano bearbeiten
nano fhem.service
und den demon neu einlesen
systemctl daemon-reload
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

manne75

auch ein fettes DANKE von mir!

Hat mir auch bei der zigbee2mqtt.service weitergeholfen!!!!!