Un outil pour tuer, y compris les petits processus. Pour python. (Il est lié au processus python.) La vérification est uniquement pour Linux.
Comment utiliser Si vous l'exécutez tel quel, une liste de processus parents avec de petits processus sera affichée, donc (À titre d'exemple, supposons qu'un programme avec un petit processus de proc_01.py proc_02.py est en cours d'exécution.)
$ python terminate_children_process.py
Liste des processus avec les petits processus liés à Python
Si vous spécifiez PID sur la ligne de commande, terminez en incluant les petits processus.
{'pid': 26727, 'cmdline': ['python', 'proc_01.py']}
{'pid': 26747, 'cmdline': ['python', 'proc_02.py']}
Spécifiez le pid que vous souhaitez terminer et exécutez à nouveau.
$ python terminate_children_process.py 26747
terminer le processus enfant 26849
terminer le processus enfant 26850
terminer le processus enfant 26851
terminer le processus parent 26747
#terminate_children_process.py
import sys
import psutil
if len(sys.argv)==1:
#Afficher le processus avec les petits processus liés à Python
print("Liste des processus avec les petits processus liés à Python")
print("Si vous spécifiez PID sur la ligne de commande, terminez en incluant les petits processus.")
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:
#Terminer avec le PID spécifié et ses petits processus
target_pid=int(sys.argv[1])
p = psutil.Process(target_pid)
#Fin de l'enfant
pid_list=[pc.pid for pc in p.children(recursive=True)]
for pid in pid_list:
psutil.Process(pid).terminate ()
print("terminer le processus enfant{}" .format(pid))
#Parent terminer
p.terminate ()
print("terminer le processus parent{}" .format(target_pid))