2016-08-14 4 views
0

Я сталкиваюсь с множеством проблем с этим, я хочу убить все мои дочерние процессы, не разрушая мой собственный процесс ИЛИ убить все процессы какой-либо группы ИЛИ получить все дочерние процессы PID ... и все это без использования либо subprocess или psutil библиотеки в питоне, кто имеет какие-либо идеи, какУбивать дочерние процессы и получать дочерние процессы pid без psutil или подпроцесса

+0

Как вы запускаете дочерние процессы? Вы всегда можете просто отслеживать их в списке, а затем вызывать 'process.terminate()' или аналогично убивать их. API нижнего уровня должен использовать ['os.kill'] (https://docs.python.org/2/library/os.html#os.kill), но для этого вам необходимо знать pid и AFAIK стандартную библиотеку * не * включает любую функциональность, которая позволяет вам искать процессы с помощью pid. Поэтому, если вы не хотите использовать psutil, вы всегда можете переопределить его часть ... – Bakuriu

+0

Почему вы хотите лишить себя использования пакетов, которые лучше всего работают? –

+0

@ Jean-FrançoisFabre Это недоступно в моей работе, но не в терминах «Не могу установить», мне просто запрещено использовать эту библиотеку, я не могу ее объяснить, так или иначе, я хотел бы узнать, как это происходит сделано без этих библиотек. Это больше учебный проект. –

ответ

1

Если вы действительно не можете получить доступ к этим библиотекам, вы можете использовать os, если дело дойдет до драки.
Например:

my_pid = os.popen('ps --no-headers -C name_of_process').read(5) 
if my_pid != "": 
    my_pid = int(my_pid) 
    os.kill(my_pid, signal.SIGTERM) 

«name_of_process» будет имя исполняемого файла
Вы также можете дополнительно посмотреть на команды ps и pkill.
Примечание: Я предполагаю, что вы используете ОС Linux

Смежные вопросы