fix: Startaufruf absichern und Neustartschleife der Station deckeln
- 'on' fing bisher nur einen bereits laufenden, aber toten Dienst ab. Scheiterte schon der Aufruf "systemctl start" selbst (z.B. start-limit-hit nach einer Absturzserie durch Restart=always), beendete set -eu das Skript dort, bevor die Lebendigkeitspruefung je erreicht wurde - der eben hochgefahrene Zugangspunkt blieb offen ohne Server dahinter stehen. Der Startaufruf wird jetzt selbst abgefangen und faehrt im Fehlerfall dieselbe Rueckabwicklung wie die is-active-Pruefung. "systemctl reset-failed" vor dem Start verhindert, dass eine fruehere Absturzserie den naechsten ehrlichen Versuch blockiert. - Stirbt der Dienst nach einem erfolgreichen Start, stoppt das Skript ihn jetzt explizit, bevor es den Zugangspunkt herunterfaehrt und "abgeschaltet" meldet - sonst haette ein mit Restart=always weiterlaufender Dienst im Hintergrund einen saubereren Zustand suggeriert, als tatsaechlich vorlag. - ninlight-station.service setzt StartLimitIntervalSec/StartLimitBurst jetzt explizit statt sich stillschweigend auf systemds Vorgabewerte zu verlassen, mit Begruendung als Kommentar: ohne Zugangspunkt kann server.py nicht binden und stirbt sofort, Restart=always soll das nach kurzer Zeit ehrlich aufgeben statt das Journal zu fluten. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
10cc67d490
commit
cb0a4b035d
@@ -8,6 +8,14 @@ Description=ninlight recovery station (HTTP image server)
|
||||
# Prozess bei jedem Absturz (z.B. Bind-Fehler nach einem NM-Neustart) per
|
||||
# Restart=always in kurzen Abstaenden neu versuchen lassen.
|
||||
After=network.target NetworkManager.service
|
||||
# Steht der Zugangspunkt nicht, kann server.py 192.168.8.1 nicht binden und
|
||||
# stirbt sofort; Restart=always versucht es alle RestartSec=2 erneut. Damit
|
||||
# das nicht endlos das Journal flutet, sondern nach kurzer Zeit ehrlich
|
||||
# aufgibt (und ninlight-station dann mit einer klaren Fehlermeldung reagieren
|
||||
# kann statt in einer stillen Neustartschleife zu haengen), hier explizit
|
||||
# gedeckelt statt sich auf systemds Vorgabewerte zu verlassen.
|
||||
StartLimitIntervalSec=30
|
||||
StartLimitBurst=5
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
|
||||
Reference in New Issue
Block a user