Prüfen ob Programm noch reagiert oder abgestürzt ist?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TechnoFeather
User
Beiträge: 20
Registriert: Freitag 24. Juli 2009, 11:07

Hallo!

Ich fange grade an etwas mit Phyton zu programmieren, jedoch möchte ich jetzt konkreter Anfangen und weiß nicht genau wie ich vorgehen soll.

Geplant ist folgendes:
Das Skript soll alle n Minuten prüfen ob ein Programm "XYZ"...
a) offen ist und wenn ja, dann
b) ob es überhaupt noch reagiert.

Wenn es nicht mehr reagiert, soll das Programm "XYZ" beendet und neu gestartet werden.

Z.Zt. habe ich Probleme herauszufinden, ob das Programm "XYZ" reagiert oder nicht. Hat da vielleicht jemand einen Tipp für mich wie ich ein Programm quasi "anpingen" kann?

Viele Grüße und Danke schonmal,
Till
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Wie soll das Programm denn reagieren? Du musst mit dem Prozess ja irgendwie interagieren, damit du heraus finden kannst, ob es noch tut, was es tun soll. Da kommt es allerdings auf das spezifische Programm an.
Bottle: Micro Web Framework + Development Blog
bankkind
User
Beiträge: 106
Registriert: Freitag 14. September 2007, 23:02
Wohnort: Teltow
Kontaktdaten:

Eine Möglichkeit wäre in bestimmten Intervallen ein Logfile zu schreiben. Mit deinem Prüfskript prüfst du dann, wann das letzte mal was in das Logfile geschrieben wurde, bzw. ob Fehler getracked wurden.

Ist zwar keine elegante Lösung, aber sie funktioniert...

bankkind
TechnoFeather
User
Beiträge: 20
Registriert: Freitag 24. Juli 2009, 11:07

Hm, also das Programm welches angesprochen werden soll ist leider sehr simpel und gibt keine weiteren Aktionen die man loggen könnte von sich.

Wie wäre es denn die Fensterposition immer um -1 pixel, +1 pixel, etc. zu verschieben? Auch keine elegante Lösung, aber für mein vorhaben würde das dicke reichen.
BlackJack

@TechnoFeather: Und was soll das bringen? Für's Fensterverschieben ist der Windowmanager bzw. bei Windows der entsprechende Teil vom Betriebssystem verantwortlich, und nicht das Programm, welches *in* dem Fenster läuft.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

BlackJack hat geschrieben:Und was soll das bringen?
Wenn das Programm hängt, dann werden die Widgets im Fenster nicht mehr neu gezeichnet sondern frieren ein und wenn man es verschiebt kommen "amüsante" Effekte raus. Ich denke sowas meinte TechnoFeather, aber ich denke nicht dass man dadurch programmatisch bestimmen könnte ob ein Programm hängt oder nicht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
problembär

Unter Linux zeigt "ps x" (auch) den Status (halb-)aktiver Prozesse an. Da könnte man das abfragen.

Gruß
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

problembär hat geschrieben:Unter Linux zeigt "ps x" (auch) den Status (halb-)aktiver Prozesse an. Da könnte man das abfragen.
Da sieht man aber auch nicht ob das Programm noch weiterrechnet oder sich in eine Dauerschleife bzw. einen Deadlock verabschiedet hat.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
TechnoFeather
User
Beiträge: 20
Registriert: Freitag 24. Juli 2009, 11:07

Leonidas hat geschrieben:
BlackJack hat geschrieben:Und was soll das bringen?
Wenn das Programm hängt, dann werden die Widgets im Fenster nicht mehr neu gezeichnet sondern frieren ein und wenn man es verschiebt kommen "amüsante" Effekte raus. Ich denke sowas meinte TechnoFeather, aber ich denke nicht dass man dadurch programmatisch bestimmen könnte ob ein Programm hängt oder nicht.
Genau Leonidas, ich will nur wissen ob das Programm ansich hängt und brauche nicht zu wissen ob der "Programmkern" noch korrekt arbeitet.
Antworten