Forum: PC-Programmierung automatischer Neustart nach crash


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Herbert (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
-1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von Rob C. (rob_chelby)


Bewertung
1 lesenswert
nicht 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)


Bewertung
-2 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
1 lesenswert
nicht 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)


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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.