Daemon ausgefallen
Und ich wundere mich schon, warum ich seit 2 Tagen so gut wie keine Reaktionen auf meine Antworten krieg...
ich hab bei meiner #Friendica Instanz nicht einen Cronjob, der die Worker startet, sondern ich habs mit dem worker-daemon gelöst. Das funktioniert ansich sehr zufriedenstellend.
Aber aus irgend einem Grund stürzt mir der Daemon immer wieder einmal ab und wird nicht mehr restartet, trotzRestart=always
in der systemd-unit.
Ich hab es jetzt um RestartSec=10s
ergänzt und lass mir außerdem, wenn er wirklich dann failed, der job, ein Email schicken.
Ich beobachte einmal.
Roland Häder likes this.
Michael Vogel
•systemd
ein.utzer [Friendica]
•jakob 🇦🇹 ✅
•StartLimitIntervalSec=interval, StartLimitBurst=burst sind noch zwei Variablen für Systemd-Units, mit denen ich jetzt noch nicht gespielt habe.
Die beiden legen fest, wie lange ein Zeitraum sein darf, in dem Versucht wird, eine Unit wieder zu starten, und wie oft es in diesem Zeitraum passieren darf, dass die Unit failed, damit sie auf "Failed" gesetzt wird.
Das hat anfangs nicht richtig funktioniert, weil es entgegen der Beschreibung falsch implementiert wurde. Und ich habe dann einen Bugreport an systemd verfasst, und Herr Poettering hat ihn sogar aufgegriffen und systemd entsprechend angepasst (worauf ich schon ein bisserl stolz bin, muss ich ehrlich zugeben 😁 ).
Um es kurz zu erklären:
Mit StartLimitBurst wird angegeben, dass z.B. 6x der Service im Zeitraum von StartLimitIntervalSec (z.B. 1 Minute) der Service fehlerhaft gestartet werden darf. Ist RestartSec mit 10s festgelegt, wird Der Service nach einem Exit>0 nach 6 Sekunden wieder gestartet wird. Da das Starten bis zum Fail auch einige Millisekunden dauern wird, wird der Service
... show moreStartLimitIntervalSec=interval, StartLimitBurst=burst sind noch zwei Variablen für Systemd-Units, mit denen ich jetzt noch nicht gespielt habe.
Die beiden legen fest, wie lange ein Zeitraum sein darf, in dem Versucht wird, eine Unit wieder zu starten, und wie oft es in diesem Zeitraum passieren darf, dass die Unit failed, damit sie auf "Failed" gesetzt wird.
Das hat anfangs nicht richtig funktioniert, weil es entgegen der Beschreibung falsch implementiert wurde. Und ich habe dann einen Bugreport an systemd verfasst, und Herr Poettering hat ihn sogar aufgegriffen und systemd entsprechend angepasst (worauf ich schon ein bisserl stolz bin, muss ich ehrlich zugeben 😁 ).
Um es kurz zu erklären:
Mit StartLimitBurst wird angegeben, dass z.B. 6x der Service im Zeitraum von StartLimitIntervalSec (z.B. 1 Minute) der Service fehlerhaft gestartet werden darf. Ist RestartSec mit 10s festgelegt, wird Der Service nach einem Exit>0 nach 6 Sekunden wieder gestartet wird. Da das Starten bis zum Fail auch einige Millisekunden dauern wird, wird der Service immer und immer wieder gestartet, da er innerhalb der 60 Sekunden nur 5x neu gestartet wurde.
Wird RestartSec auf 9 Sekunden festgelegt, und der Service will nicht hochkommen, wird er innerhalb einer Minute 7x neu gestartet und failed... und die Unit geht in den Zustand failed und wird nicht mehr wieder gestartet.
In der [Unit]-Section kann man mit OnFailure= einen oder mehrere Units angeben die getriggert werden, wenn die Unit auf failed schaltet. Ich hab mir da eine Unit gebaut, die mir ein Email schickt, dass diese Unit nun kaputt ist. Also ein Monitoring für arme... 😀
Tealk
•jakob 🇦🇹 ✅
•@Tealk @utzer Danke!!
Bis auf das TimeoutSec qusi gleich zu meiner.
Ich hab RestartSec auf 10s gestellt.
Bei dem Daemon ist es ja egal, ob dieser mal für ein, zwei Minuten ausfällt... Tagelang ists halt blöd.
Aber ich hab meine vorhin angepasst, und sie schaut jetzt aktuell so aus:
Roland Häder
•Das
renice
ist dafuer da, dass der Daemon nicht die Webseite beeintraechtigt.utzer [Friendica]
•Roland Häder likes this.