Autor Thema: FHEM in Verbindung mit supervisord : FATAL state  (Gelesen 540 mal)

Offline dama

  • New Member
  • *
  • Beiträge: 17
FHEM in Verbindung mit supervisord : FATAL state
« am: 13 Mai 2017, 21:11:16 »
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

Offline Wernieman

  • Hero Member
  • *****
  • Beiträge: 3337
Antw:FHEM in Verbindung mit supervisord : FATAL state
« Antwort #1 am: 16 Mai 2017, 13:58:51 »
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

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

Offline FunkOdyssey

  • Sr. Member
  • ****
  • Beiträge: 985
Antw:FHEM in Verbindung mit supervisord : FATAL state
« Antwort #2 am: 05 September 2017, 14:41:03 »
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
« Letzte Änderung: 05 September 2017, 14:44:36 von FunkOdyssey »
FHEM@RasPi