Ein Werkzeug zum Töten, einschließlich kleiner Prozesse. Für Python. (Es ist im Python-Prozess gebunden.) Die Überprüfung ist nur für Linux.
Wie benutzt man Wenn Sie es so ausführen, wie es ist, wird eine Liste der übergeordneten Prozesse mit kleinen Prozessen angezeigt (Nehmen Sie als Beispiel an, dass ein Programm mit einem kleinen Prozess von proc_01.py proc_02.py ausgeführt wird.)
$ python terminate_children_process.py
Prozessliste mit kleinen Python-bezogenen Prozessen
Wenn Sie in der Befehlszeile die PID angeben, beenden Sie den Vorgang mit kleinen Prozessen.
{'pid': 26727, 'cmdline': ['python', 'proc_01.py']}
{'pid': 26747, 'cmdline': ['python', 'proc_02.py']}
Geben Sie die PID an, die Sie beenden und erneut ausführen möchten.
$ python terminate_children_process.py 26747
untergeordneten Prozess beenden 26849
untergeordneten Prozess beenden 26850
untergeordneten Prozess beenden 26851
Beenden Sie den übergeordneten Prozess 26747
#terminate_children_process.py
import sys
import psutil
if len(sys.argv)==1:
#Prozess mit pythonbezogenen kleinen Prozessen anzeigen
print("Prozessliste mit kleinen Python-bezogenen Prozessen")
print("Wenn Sie in der Befehlszeile die PID angeben, beenden Sie den Vorgang mit kleinen Prozessen.")
PROCNAME = "python"
for proc in psutil.process_iter([ "pid" , 'cmdline' ]):
if proc.name()[:len(PROCNAME)] == PROCNAME:
p = psutil.Process(proc.pid)
if len(p.children()) >0:
print(proc.info)
else:
#Beenden Sie einschließlich der angegebenen PID und ihrer kleinen Prozesse
target_pid=int(sys.argv[1])
p = psutil.Process(target_pid)
#Kind kündigen
pid_list=[pc.pid for pc in p.children(recursive=True)]
for pid in pid_list:
psutil.Process(pid).terminate ()
print("Untergeordneten Prozess beenden{}" .format(pid))
#Eltern beenden
p.terminate ()
print("Beenden Sie den übergeordneten Prozess{}" .format(target_pid))