Ich verwende eine Drittanbieter-Bibliothek, die verschiedene Unterprozesse startet. Wenn es eine Ausnahme gibt, möchte ich alle untergeordneten Prozesse beenden. Wie kann ich eine Liste von Kinderpids bekommen?Wie listen Sie alle untergeordneten Prozesse in Python auf?
Antwort
Es ist normalerweise sicherer, die PIDs aller untergeordneten Prozesse zu protokollieren, wenn Sie sie erstellen. Es gibt keine posix-konforme Möglichkeit, untergeordnete PIDs aufzulisten. Ich weiß, dass dies mit dem PS-Tool getan werden kann.
Ja, das habe ich erwartet. Das Problem ist, dass ich nicht die Prozesse erstelle, sondern die Third Party Library. Naja. Es ist kein Showstopper. – Rowan
kann ich akzeptieren? –
Eigentlich ist Ihre Antwort nicht die Lösung. Ich muss wirklich wissen, wie ich '' psutil.Process'' bekomme, um mir rekursives '' memory_info'' und '' cpu_percent'' zu geben, aber mein Aufruf zum Subprozess öffnet tatsächlich einen anderen Subprozess (mindestens 4 oder 5 Level) und ein I habe keine Möglichkeit, alle PIDs im Auge zu behalten. – Natim
Mit psutil Sie alle Kinder Prozess (auch rekursiv Prozess) zu buchen, https://psutil.readthedocs.io/en/latest/#psutil.Process.children
Ihr Link erzeugt 404 Status, überprüfen Sie es oder stimmen Sie ab ( – dyomas
Danke, aktualisieren Sie den Link –
können Sie nicht immer einloggen, alle Teilprozesse wie sie erstellt werden, da sie wiederum schaffen neue Prozesse bekommen, dass Sie sind mir nicht bewusst. Allerdings ist es ziemlich einfach psutil zu verwenden, um sie zu finden:
import psutil
current_process = psutil.Process()
children = current_process.children(recursive=True)
for child in children:
print('Child pid is {}'.format(child.pid))
Ich denke _parent_ und _current_process_ ist das gleiche?) – dyomas
Yup, bearbeitet, um zu korrigieren. Danke @dyomas. –
könnte uns helfen, Ihr Betriebssystem zu erklären, da diese Plattform abhängig –
Does POSIX helfen Ihnen sein wird? Ich nehme an, einige Leute würden gerne die Windows Antwort auch wissen. – Rowan
Siehe: http://Stackoverflow.com/a/4229404/376587 –