[Python-de] feststellen ob ein prozess läuft

Andreas Jung lists at andreas-jung.com
Fr Dez 21 12:35:46 UTC 2007



--On 21. Dezember 2007 12:30:03 +0100 Ulrich Berning 
<ulrich.berning at denviso.de> wrote:

> robert rottermann wrote:
>
>> Hallo,
>>
>> ich möchte feststellen, ob ein prozess noch läuft, von dem id die
>> pzess-id kenne.
>>
>> z.Z. mache ich das so, dass ich mir mit ps alle prozesse ausgeben
>> lasse, und dann scanne.
>>
>> gibt es da eine einfachere bzw bessere methode?
>>
>> danke für hinweise
>
> Wie wär's hiermit:
>
> ------------
> import os, signal, errno
>
> def processIsAlive(pid):
>     try:
>         os.kill(pid, signal.SIG_DFL)  # Check existence of pid
>     except os.error, args:
>         if args.errno == errno.ESRCH: # No such process
>             return False
>         raise                         # Any other error
>     return True
>
> if __name__ == '__main__':
>     print processIsAlive(os.getpid())
>     print processIsAlive(22222222)


Damit überprüfst Du, ob der Prozess noch lebt aber Du kannst damit
nicht testen, ob der Prozesse eigentlich noch der richtige ist, den Du 
eigentlich testen möchtest...Da ist selbst die Methode über ps -auxw|grep 
....sicherer als das bisher genannte.

-aj
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 186 bytes
Beschreibung: nicht verfügbar
URL         : http://python.net/pipermail/python-de/attachments/20071221/c8442ad6/attachment.pgp