[Python-de] feststellen ob ein prozess läuft
Ulrich Berning
ulrich.berning at denviso.de
Fr Dez 21 11:30:03 UTC 2007
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)
------------
Geht natürlich nur auf Linux/UNIX, ist aber der offizielle Weg (siehe
Manual Page von kill()).
Ulli