--On 21. Dezember 2007 10:46:25 +0100 Sebastian Wiesner <basti.wiesner@gmx.net> wrote:
[ robert rottermann <robert@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