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

Sebastian Wiesner basti.wiesner at gmx.net
Fr Dez 21 11:23:29 UTC 2007


[ Andreas Jung <lists at andreas-jung.com> ]
> --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().
Stimmt, mein Fehler.

> 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. 
Aussage des OP:
ich möchte feststellen, ob ein prozess noch läuft, von dem id die prozess-id 
kenne.

Ich habe das so verstanden, dass er nichts anderes über den Prozess weiß. In 
diesem Fall helfen ihm zusätzliche Infos aus /proc auch nicht weiter. Die 
mögliche Neubelegung einer bereits benutzten PID kann er so gar nicht 
erkennen.


-- 
Freiheit ist immer die Freiheit der Andersdenkenden.
                                            (Rosa Luxemburg)
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: This is a digitally signed message part.
URL         : http://python.net/pipermail/python-de/attachments/20071221/224de56c/attachment.pgp