Как вы перечисляете все дочерние процессы в python?

Я использую стороннюю библиотеку, которая запускает различные подпроцессы. Когда есть исключение, я хотел бы убить все дочерние процессы. Как я могу получить список дочерних сообщений?

Ответ 1

Вы не всегда можете регистрировать все подпроцессы по мере их создания, поскольку они могут, в свою очередь, создавать новые процессы, о которых вы не знаете. Тем не менее, довольно просто использовать psutil для их поиска:

import psutil

current_process = psutil.Process()
children = current_process.children(recursive=True)
for child in children:
    print('Child pid is {}'.format(child.pid))

Ответ 2

Как правило, безопаснее регистрировать pids всех ваших дочерних процессов при их создании. Существует не совместимый с posix способ перечислить дочерние PID. Я знаю, что это можно сделать с помощью инструмента PS.