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
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.
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.
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.
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.
Ein Programm stuerzt ab ? Repetierbar ab ? Bist du sicher, dass es ueberhaupt das macht was es soll ? Flupp - in die Tonne. Vergiss es.
> 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?
> > 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.