Hallo, wie kann ich überprüfen, ob ein Prozess, den ich mit Py gestartet habe, noch läuft? Eine GUI-Anwendung ruft unter Linux ein Dokument mit dem entsprechenden Programm auf (os.spawnlp(os.P_NOWAIT, ...). Die PID ist bekannt. Die GUI-Anwendung soll nun wissen, wann ob das Programm noch läuft, bzw. ob es beendet wurde. Ziel ist es, herauszufinden, wie lange das entsprechende Programm genutzt wurde. Beste weihnachtliche Grüße an alle, Andi _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
Andi Albrecht wrote:
wie kann ich überprüfen, ob ein Prozess, den ich mit Py gestartet habe, noch läuft? Eine GUI-Anwendung ruft unter Linux ein Dokument mit dem entsprechenden Programm auf (os.spawnlp(os.P_NOWAIT, ...).
Du solltest einen SIGCHLD-Handler installieren, der aufgerufen wird, wenn der Prozess terminiert. Alternative kannst Du mit os.waitpid auf das Prozessende warten - je nachdem, ob Du WNOHANG angibst, blockiert dieser Ruf. Ciao, Martin _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
Hallo Martin, auf keinen Fall möchte ich auf das Ende des Prozesses warten. Das Programm sollte "weitgehend" unabhängig von dem Skript laufen, daß es gestartet hat. Das Skript soll nur wissen, ob das Programm noch läuft. Wie erzeuge ich diesen SIGCHLD-Handler. Die SIG*-Handler sind mir bekannt, aber SIGCHLD muß ich - ehrlich gesagt - überlesen haben... Grüße, Andi -----Ursprüngliche Nachricht----- Von: python-de-admin@python.net [mailto:python-de-admin@python.net]Im Auftrag von Martin v. Löwis Gesendet: Montag, 23. Dezember 2002 19:09 An: python-de@python.net Betreff: Re: [Python-de] Prozess überprüfen Andi Albrecht wrote:
wie kann ich überprüfen, ob ein Prozess, den ich mit Py gestartet habe, noch läuft? Eine GUI-Anwendung ruft unter Linux ein Dokument mit dem entsprechenden Programm auf (os.spawnlp(os.P_NOWAIT, ...).
Du solltest einen SIGCHLD-Handler installieren, der aufgerufen wird, wenn der Prozess terminiert. Alternative kannst Du mit os.waitpid auf das Prozessende warten - je nachdem, ob Du WNOHANG angibst, blockiert dieser Ruf. Ciao, Martin _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
Andi Albrecht wrote:
auf keinen Fall möchte ich auf das Ende des Prozesses warten. Das Programm sollte "weitgehend" unabhängig von dem Skript laufen, daß es gestartet hat. Das Skript soll nur wissen, ob das Programm noch läuft.
Wie erzeuge ich diesen SIGCHLD-Handler. Die SIG*-Handler sind mir bekannt, aber SIGCHLD muß ich - ehrlich gesagt - überlesen haben...
Ganz einfach: signal.signal(signal.SIGCHLD, handler). Ciao, Martin _______________________________________________ Python-de maillist - Python-de@starship.python.net http://starship.python.net/mailman/listinfo/python-de
participants (2)
-
"Martin v. Löwis"
-
Andi Albrecht