Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Sorry bin grad ziemlich verwirrt :-/
Suche verzweifelt nach einer Funktion zur Rückgabe der Prozessliste unter Linux :-/
Unter Windwos hab ich das schon hinbekommen mit dieser Funktion:
def getprocessdict():
wmi = win32com.client.GetObject("winmgmts:")
result = wmi.ExecQuery("SELECT * FROM Win32_Process")
tasks = {}
for elem in result:
name=elem.Name.lower()
try:
tasks[name].append(elem.ProcessId)
except KeyError:
tasks[name]=[elem.ProcessId]
return tasks
Gibt es etwas equivalentes auch unter Linux? Ist mir etwas müssig mit einem os.system("ps") an die Prozessliste zu kommen.
Geht ja sicher auch direkt oder?:-/
Danke mal im voraus
import os
def listProcesses():
rv = []
for i in os.listdir("/proc"):
try:
rv.append(int(i))
except ValueError:
pass
return rv
print listProcesses()
Wenn Du mehr Informationen brauchst: man proc, das zeigt Dir welche besonderen Files noch unter /proc/<pid>/ liegen (/proc/<pid> ist ein Verzeichnis in dem Prozess-Informationen liegen).
danke für die schnelle antwort
Bin leider unter UNIX OS leider nicht so fit wie ich das eventuell sein sollte
werde mich dann mal näher damit befassen
Leider funktionier man proc nicht wie gewünscht :-/
Mich würde auch interessieren welcher Prozess hinter der ID unter /proc steht
was ich aber so leider wohl nicht ohne weiteres kann ich hätte gerne eine Liste wie das "ps -ef" zurückgibt
Das man über ps nur die Prozesse, welche vom aktuellen Login gestartet wurden zurückgeliefert bekommt.
Ebenso erhält man keine Information darüber welche Python Datei ausgeführt wird sondern nur das ein Prozess von Python gestartet wurde welcher genau erfährt man eben nicht.
man proc in der shell eingegeben dann erhält man genau die Infos die dein Link beinhaltet aber wie schon erwähnt hilft mir das nicht....
Habe das Problem jedch anderweitig gelöst danke trotzdem für die Mühe
Brok3r hat geschrieben:man proc in der shell eingegeben dann erhält man genau die Infos die dein Link beinhaltet aber wie schon erwähnt hilft mir das nicht....
Ach, so! Ich dachte es würde nicht funktionieren.
Im Übrigen lohnt es sich oft auch zusätzlich zur man-page die info-pages anzuschauen. Ob es das für proc gibt, weiß ich im Moment aber nicht.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
jo aber die Infos die mir ps aux ausgibt interessieren mich nicht wirklich cpu usage mem usage etc sind für mich gänzlich uninteressant momentan.
Wir schweifen aber etwas vom Thema ab ich wollte ursprünglich wissen wie ich an eine Prozessliste im Python komme und zwar direkt ohne irgendwelche shellcommands abzusetzen..
Wenn das jemand weiß wäre es nett wenn er es hier postet.
Ja das hab ich schon gesehen..
Glaub ich muss mal an meiner Ausdrucksweise arbeiten.
Die einfache Prozessliste nutzt mir nichts...
Ich brauche eine Zuordnung PRozess -> Datei die ausgeführt wird..
Das erhalte ich aber nur durch reines einlesen der vorhandenen Prozesse unter /proc nicht..
Da erhalte ich nur die Prozess ids aber keine Info darüber welche Datei dahinter steckt
Du meinst welcher Prozess im Sinne von Datei auf der Platte dahinter steckt? Das geht prinzipiell zwar, ist aber zum einen nicht fehlerfrei (im Sinne von die Datei auf die es verweist kann oder kann nicht existieren), zum anderen kann es nur root.
habs getestet und es tuts soweit...
Allerdings erhalte ich nur das Programm welches ausgeführt wird nicht jedoch die Datei also z.b bei einem Python skript nur usr/bin/python....
aber nicht das ausgeführte Skript gibt es auch eine Möglichkeit daran zu kommen?
ich habe selbst auch nachgesehen aber bis auf ein cwd finde ich nicht mehr Infos unter /proc/<pid>/
aber ps -ef muss die Info ja auch irgendwoher bekommen und von dem her müßte es ja in der Theorie realisierbar sein oder täusche ich mich da? :-/
Jau super genau das wollte ich wissen damit ist auch mir Linux "Legasthemiker" wie du es auf deinem blog nennst geholfen
Die Befehlszeile bei mir wird sich nicht ändern da ich gezielt nach Skripten die ich aufstarte suche und die nicht , so hoffe ich , ungewollt die Befehlszeile ändern
Jaja, da sieht man's mal wieder: ein Legastheniker.
Ganz davon abgesehen: ich bezog das nicht auf Linux-Wissen im allgemeinen, sondern auf den Gebrauch einer Distribution die elementare Dinge nicht einhält, wie zum Beispiel SuSE oder Fedora Core, nämlich solche Manpages standardmäßig mitzuinstallieren...
Jo macht ja auch nichts aber auch ein (nicht)legastheniker kann sich vor tippfehlern nicht schützen
Also bei Version 10.0 von Suse sind die Manpages Standardmäßig mit dabei