Seite 1 von 1

Laufende Prozesse und deren PID´s ausgeben

Verfasst: Montag 15. Januar 2007, 12:56
von Exitus
HI, ich bin leider neu hier mit python und habe mich
heute bisher den tag durch ein pyhton-refernz-script gearbeitet um eine antwort auf meine frage zu erhalten. Leider ohne erfolg

Gibt es einen Befehl mit dem mir alle laufenden Prozesse ausgebenen werden? Mit name und PID

-> Windows siehe Taksmanager
-> Linux-bashprogrammierung der befehl ps -W

Vielen Dank
ciaoi

Exitus

Verfasst: Montag 15. Januar 2007, 13:31
von pr0stAta
Für die Linux Ausgabe könntest du folgendes verwenden:

Code: Alles auswählen

import os
os.system("ps -W")
Ob so etwas unter Windows möglich ist, weiss ich leider nicht

Verfasst: Montag 15. Januar 2007, 13:45
von Exitus
*gG* okay

nur leider intessiert mich gerade in Windows :wink:

Re: Laufende Prozesse und deren PID´s ausgeben

Verfasst: Montag 15. Januar 2007, 14:11
von gerold
Exitus hat geschrieben:Gibt es einen Befehl mit dem mir alle laufenden Prozesse ausgebenen werden? Mit name und PID
Hi Exitus!

Willkommen im Python-Forum!

PIDs: http://www.python-forum.de/topic-8277.html

mfg
Gerold
:-)

Verfasst: Montag 15. Januar 2007, 14:27
von Sr4l
C:\WINDOWS\system32\tasklist.exe

und

C:\WINDOWS\system32\taskkill.exe

können helfen


EDIT...
ich sollte ab und zu mal refreshen bevor ich antworte :-D

Verfasst: Montag 15. Januar 2007, 15:23
von Exitus
Hi Sr4l,


hey das ist ja schon mal klasse, jetzt ist nur die frage, wie kann ich das was mir tasklist.exe ausgibt in eine Variable speichern...

Ich habe jetzt die idee von pr0stAta verwendet und mit deiner kombiniert.

Code: Alles auswählen

import os
string = os.system("tasklist.exe")
Aber leider scheint mir der system aufruf dann nur eine NULL für success zurückzugeben, doch wie komme ich nun an den inhalt der ausgebenen tasks ran?

Vielleicht würde irgendwie eine ausgabe umlenkung helfen??
Grüße

Exitus

Verfasst: Montag 15. Januar 2007, 15:43
von CM
Hoi,

hast Du Dir gerold Link mal angeschaut? Da gibt es eine fertige Lösung. Außerdem wird Dir das os-Modul an dieser Stelle weiterhelfen. Das Meiste ist für Unix(-Derivate), aber dennoch wirst Du fündig werden.

os.system liefert keine Rückgabewerte. Das leistet hier os.popen*, bzw. das neuere Modul subprocess.

HTH
Christian

Verfasst: Montag 15. Januar 2007, 18:05
von Sr4l
popen (Achtung da gibt es mehrere; man sollte viel lesen ums zu verstehen) kann man (Windows-)Befehle ausführen und man bekommt den Rückgabe wert denn man dann bearbeiten kann wie man will.

Gerolds Code ist (zwar etwas länger ^^) aber dort kommt alles zum Einsatz was du brauchst.

Verfasst: Montag 15. Januar 2007, 18:31
von Leonidas
Sr4l hat geschrieben:popen (Achtung da gibt es mehrere; man sollte viel lesen ums zu verstehen) kann man (Windows-)Befehle ausführen und man bekommt den Rückgabe wert denn man dann bearbeiten kann wie man will.
Erstens bekommt man dort nicht (nur) den Rückgabewert sondern hauptsächlich stdin, strout und strerr und zweitens wurde das alles schön ins subprocess-Modul integriert das einem mit einer hübschen API all dies Funktionalität von popen* bietet.

Verfasst: Montag 15. Januar 2007, 21:51
von Sr4l
Ach Leonidas ;-) man muss nicht alles SO genau nehmen :-D

Verfasst: Dienstag 16. Januar 2007, 17:13
von Leonidas
Sr4l hat geschrieben:Ach Leonidas ;-) man muss nicht alles SO genau nehmen :-D
Nein - aber warum sich das Leben schwermachen und später sowieso auf subprocess umsteigen, wenns doch jetzt auch schon geht?