shutdown fährt Fhem nicht mehr herunter

Begonnen von Rewe2000, 04 Februar 2020, 21:51:49

Vorheriges Thema - Nächstes Thema

Rewe2000

Hallo,

mir fällt seit der Umstellung auf Buster folgendes auf.
Führe ich in der Fhem Komandozeile ein shutdown (ohne restart) aus, so fährt Fhem herunter und startet aber sofort wieder neu.
Mein Fhem kann ich nur mit "sudo systemctl stop fhem" unter Linux zum stoppen bekommen.

Liegt da der "Fehler" bei mir oder ist das derzeit ein bekanntes "Problem"?

Fhem und Buster auf RPI3 ist ziemlich aktuell (stand Samstag). Derzeit läuft alles bestens, mir sind so keinerlei Abweichungen aufgefallen.
Ich liefere gerne mehr Info dazu, aber derzeit habe ich absolut keine Ahnung wo ich da nachsehen müsste.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

MadMax-FHEM

Liegt (verm.) am systemd-Startscript...
Dort steht (verm.) drin, dass eben fhem (immer) wieder autom. gestartet werden soll...

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)

yersinia

Zitat von: MadMax-FHEM am 04 Februar 2020, 22:00:33
Liegt (verm.) am systemd-Startscript...
Dort steht (verm.) drin, dass eben fhem (immer) wieder autom. gestartet werden soll...
vermutlich hast du recht, mein systemd service file sieht so aus (ich hatte das schonmal im Thread 108133 beschrieben:
# $Id: fhem.service 19235 2019-04-21 13:26:17Z betateilchen $

[Unit]
Description=FHEM Home Automation
Wants=network.target
After=network.target
#Requires=postgresql.service
#After=postgresql.service
#Requires=mysql.service
#After=mysql.service

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

[Install]
WantedBy=multi-user.target

Ich denke, es liegt an Restart=always.
Installiert habe ich wie auf debian.fhem.de mittels apt beschrieben. OS ist Raspbian Buster, die systemd service ist unverändert (zumindest jabe ich die nicht bewusst editiert).

Die Frage ist, welche Auswirkungen das auf den FHEM Betrieb insb für shutdown und shutdown restart hat. Ich weiss auch nicht, ob via sudo systemctl stop fhem fhem auch vernünftig runtergefahren wird (analog was ich von einem fhem internen shutdown erwarten würde).
viele Grüße, yersinia
----
FHEM 6.4 (SVN) on RPi 4B with RasPi OS Bookworm (perl 5.36.0) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

MadMax-FHEM

Die Auswirkungen bzgl. shutdown ohne restart hast du ja gemerkt... ;)

Bei shutdown restart kommt es drauf an, weil fhem ja (manchmal) verzögert (z.B. alexa-fhem)...
Habe aber noch nichts festgestellt...

Ansonsten sollte die "Bedienung" per systemctl auf fhem keine negativen Auswirkungen haben...

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)

Rewe2000

Hallo,

@Joachim: Danke für den Tipp, somit haben zukünftig alle Fhem Installationen, welche den empfohlenen Weg wählen, das gleiche Startverhalten.

Hat natürlich alles Vor und Nachteile.
Ich stelle mir die Frage ob es wirklich wünschenswert ist, Fhem im Fehlerfall ohne jegliche Wartezeit neuzustarten. Aber da lass ich mich gerne von erfahreren Linux Usern belehren.

Kennt sich jemand mit dem Zusatz RestartSec= aus?
Kommt diese Wartezeit immer (auch bei shutdown restart und systemctl start) zu tragen, wahrscheinlich ja.
Wäre es nicht genau so sicher Restart=on-success zu verwenden?
Das würde doch Fhem nur im "Fehlerfall" automatisch starten und der bewusst angeforderte shutdown von Fhem wäre noch möglich.

Bin mir echt nicht sicher, was hier der bessere Weg ist.

Gruß Reinhard
Fhem 6.3 auf Raspberry Pi4 SSD mit Raspbian Bookworm, Homematic, Homematic IP, CCU3 mit RapberryMatic, WAGO 750-880, E3DC S10E Hauskraftwerk, E3DC Wallbox, my-PV AC ELWA-E Heizstab, Fritz!Box 7590, KIA Bluelinky

mahowi

#5
Mit on-success würde Fhem nach ordentlichem Beenden, also auch nach shutdown neu gestartet. on-failure oder on-abnormal wären für den "Fehlerfall" die richtigen Einstellungen.

RestartSec kommt bei jedem Restart zum Tragen, also also im Falle von Restart=always auch bei shutdown.

Zitat von: man systemd.serviceTakes one of no, on-success, on-failure, on-abnormal, on-watchdog, on-abort, or always. If set to no (the default), the service will not be
restarted. If set to on-success, it will be restarted only when the service process exits cleanly. In this context, a clean exit means an exit
code of 0, or one of the signals SIGHUP, SIGINT, SIGTERM or SIGPIPE, and additionally, exit statuses and signals specified in
SuccessExitStatus=. If set to on-failure, the service will be restarted when the process exits with a non-zero exit code, is terminated by a
signal (including on core dump, but excluding the aforementioned four signals), when an operation (such as service reload) times out, and when
the configured watchdog timeout is triggered. If set to on-abnormal, the service will be restarted when the process is terminated by a signal
(including on core dump, excluding the aforementioned four signals), when an operation times out, or when the watchdog timeout is triggered.
If set to on-abort, the service will be restarted only if the service process exits due to an uncaught signal not specified as a clean exit
status. If set to on-watchdog, the service will be restarted only if the watchdog timeout for the service expires. If set to always, the
service will be restarted regardless of whether it exited cleanly or not, got terminated abnormally by a signal, or hit a timeout.

ZitatRestartSec=
           Configures the time to sleep before restarting a service (as configured with Restart=). Takes a unit-less value in seconds, or a time span
           value such as "5min 20s". Defaults to 100ms.
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee