Forum: PC-Programmierung automatischer Neustart nach crash


von Herbert (Gast)


Lesenswert?

Hi

Ich habe eine System mit Linux und Busybox auf einer Embedded Plattform 
und darauf läuft ein selbst geschriebenes Programm. Es startet mit Hilfe 
eines Initscripts automatisch hoch und kann mit /etc/init.d/test 
start/stop/restart/status gesteuert werden. Nun suche ich eine 
Möglichkeit sicherzustellen das das Programm neustartet wenn es einmal 
abstürzt?! Ich hatte zuerst die Idee einen Cron Job zu erstellen der in 
einen bestimmten Intervall den status abfragt und gegebenenfalls neu 
startet wenn das Programm gestoppt ist! Gebe es noch eine andere 
Möglichkeit dies zu realisieren oder gibt es schon ein Tool das dies 
kann?!

mfg Herbert

von Peter II (Gast)


Lesenswert?

Herbert schrieb:
> . Nun suche ich eine
> Möglichkeit sicherzustellen das das Programm neustartet wenn es einmal
> abstürzt?!

wenn du auch Systemd installieren kann, dann übernimmt er das 
neustarten.

von Markus C. (ljmarkus)


Lesenswert?


von Rob C. (rob_chelby)


Lesenswert?

Per Aufrufschleife?

https://stackoverflow.com/questions/696839/how-do-i-write-a-bash-script-to-restart-a-process-if-it-dies

Ich benutze sowas wie aus Antwort 1, wobei ich noch einen 
Aufrufparameter mitgebe der ggf. dann dem Programm mitteilt, dass es wg. 
crash neu aufgerufen wurde.

von Noch einer (Gast)


Lesenswert?

Eigentlich sollte dein Programm so gut sein, dass es nur abstürzt, wenn 
du sowieso der ganzen Rechner neu starten musst.

Ausserdem - dein Programm kann ja auch in einer Endlosschleife landen 
oder ewig auf eine Eingabe warten.

Normalerweise benutzt man den Hardware-Watchdog und den Watchdog Deamon. 
In der Konfiguration des Watchdogs trägst du dann z.B. ein, falls die 
Programm nicht alle 5 Minuten seine Logdatei aktualisiert, soll er den 
ganzen Rechner neu starten.

von Peter D. (peda)


Lesenswert?

Herbert schrieb:
> darauf läuft ein selbst geschriebenes Programm.

Wenn man ein Programm selber schreibt, dann hat man es doch in der Hand, 
es so sorgfältig zu schreiben, daß es nicht abstürzt.
Du solltest also erstmal die Absturzursachen analysieren und 
korrigieren.
Du kannst ja im Programm eine Watchdogtimer aufsetzen, der bei einem 
Hänger Daten zur Analyse in ein Logfile schreibt.

von Pandur S. (jetztnicht)


Lesenswert?

Ein Programm stuerzt ab ? Repetierbar ab ? Bist du sicher, dass es 
ueberhaupt das macht was es soll ?

Flupp - in die Tonne. Vergiss es.

von Noch einer (Gast)


Lesenswert?

> Flupp - in die Tonne.

Nehmen wir mal ein Beispiel:

Alle paar Monate gibt es eine Störung auf der USB Verbindung zu einer 
50€ Wetterstation. Mal hängt es sich auf, mal ist das Device 
verschwunden, manchmal legt Linux ein Device mit einem anderen Namen 
an... Es gibt keine Dokumentation, was alles passieren kann. Ein 
Profigerät mit RS485 kostet 2000€.

Was willst du du in die Tonne treten?

-Die 50€ Wetterstation?
-Das Linux?
-Die Linux USB Treiber?
-Die unvollständige Fehlerbehandlung?
-Die ganze Idee?

von W. Frosch (Gast)


Lesenswert?

>
> Was willst du du in die Tonne treten?
>
Na klar: das Wetter!   (...Scheissleiter!)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.