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

Andreas Jung lists at andreas-jung.com
Fr Dez 21 10:53:09 UTC 2007



--On 21. Dezember 2007 10:46:25 +0100 Sebastian Wiesner 
<basti.wiesner at gmx.net> wrote:

> [ robert rottermann <robert at redcor.ch> ]
>> 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?
>
> running = str(pid) in os.listdir('/proc')
>
> oder
>
> running = pid in [fso for fso in os.listdir('/proc') if fso.isdigit()]
>

Beide Lösung sind unbrauchbar. os.listdir() hat zuviel
Overhead bei vielen Prozessen. Es gibt os.path.exists(). Ausser kann es 
sein, dass ein anderer Prozess mittlerweile die gleiche PID hat wie der 
Prozess, den man überprüfen will (alles schon passiert im realen 
Betrieb). Deswegen muss man zusätzliche Infos aus dem ProcFS auswerten.

-a
-------------- 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/34dec346/attachment.pgp