FHEM in Verbindung mit supervisord : FATAL state

Begonnen von dama, 13 Mai 2017, 21:11:16

Vorheriges Thema - Nächstes Thema

dama

Moin!

Ich habe FHEM als ein Docker Container unter Fedora 25 eingerichtet. Hierzu habe ich mich teilweise an die Lösung von pipp37 https://github.com/pipp37/fhem_jessie gehalten.
Bei meiner Frage geht es letzten Endes um supervisord, der dafür zuständig ist, FHEM neu zu starten, sollte es sich einmal beendet haben (ansonsten würde der ganze Container ja terminieren)

Im Prinzip läuft FHEM im Container gut, allerdings beunruhigt mich die Ausgabe von supervisord, die bei jedem Start von FHEM so aussieht:


2017-05-12 22:21:42,629 INFO spawned: 'fhem' with pid 50
2017-05-12 22:21:42,731 INFO exited: fhem (exit status 1; not expected)
2017-05-12 22:21:43,736 INFO spawned: 'fhem' with pid 52
2017-05-12 22:21:43,859 INFO exited: fhem (exit status 1; not expected)
2017-05-12 22:21:45,864 INFO spawned: 'fhem' with pid 54
2017-05-12 22:21:46,009 INFO exited: fhem (exit status 1; not expected)
2017-05-12 22:21:49,641 INFO spawned: 'fhem' with pid 56
2017-05-12 22:21:49,765 INFO exited: fhem (exit status 1; not expected)
2017-05-12 22:21:50,766 INFO gave up: fhem entered FATAL state, too many start retries too quickly


Immer 4 Mal "spawned" -> Meldung wg. FATAL state -> FHEM läuft trotzdem

Meine supervisord.conf


[supervisord]
nodaemon=true

[inet_http_server]
port=*:9001
username=XXX
password=XXX

[program:fhem]
command=/opt/runfhem.sh
startsecs=2
startretries=3
autorestart=unexpected

stdout_logfile=/var/log/supervisor/%(program_name)s.out.log
stderr_logfile=/var/log/supervisor/%(program_name)s.err.log


Kann mir jemand erklären, wieso es zu der FATAL Meldung kommt? Bzw. wie ich das "sauber" hinkriege?

Danke & Grüße
dama

Wernieman

Warum willst Du mit einem Zusätzlichen Deamon sicherstellen, das der fhem im Docker läuft?

Wenn sich fhem beendet und damit der Container, dann soll doch bitte der dockerdeamon es wieder starten. Dazu gibt es Konfigoptionen.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

FunkOdyssey

#2
Das wundert mich auch. Ein Großteil der Docker-Images unter https://hub.docker.com/ lassen FHEM via supervisord laufen.
Ich verstehe nie, wieso diese Zwischenebene reingezogen wird und dadurch die Container eigentlich sogar instabiler werden.
Wie hier bereits erwähnt: Beende ich supervisord, so beendet sich der ganze Container. Oder auch: Ich möchte FHEM mal pausieren lassen und muss aufpassen, dass ich dadurch nicht auch die SSH-Verbindung verlieren (siehe https://hub.docker.com/r/pipp37/fhem_jessie/). Okay, zugegeben: ich müsste dann wahrscheinlich eher zu "supervisorctl" greifen anstatt den "supervisord" zu beenden.

Ich könnte mir vorstellen, dass supervisord genutzt wird, da FHEM eigentlich als Daemon läuft und es daher Probleme geben könnte.
Aber ich meine auch irgendwo gelesen zu haben, dass man FHEM auch im Vordergrund starten kann.

Nachtrag: Ach ja, die Varianten waren die folgende:
- https://github.com/klein0r/fhem-docker/blob/master/fhem/start.sh
- oder siehe Attribut "nofork" https://forum.fhem.de/index.php?topic=12894.0