Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
А это две из восьми подборок моего канала канала о программировании на языке Python
Пример с многими процессами
Сегодня приведу пример возможности модуля subprocess. Ниже представлена программа, которая создаёт указанное количество процессов и далее позволяет осуществлять простейшие элементы управления процессами: получить список процессов с указанием, какой из них закончил свою работу, получить информацию о конкретном процессе, удалить конкретный процесс, выйти из программы с удалением дочерних процессов.
Ниже представлен текст дочернего процесса. Дочерний процесс при запуске получает свой уникальный номер nm. При запуске в дочернем процессе создаются два обработчика сигналов. alarm - обрабатывает сигнал SIGALRM и выполняет команду окончания работы процесса (sys.exit(0)). signal_usr1 - обработка сигнала SIGUSR1.
Ниже представлена программа родительского процесса. Программа создает указанное количество дочерних процессов на основе p2.py. Для этого используется метод Popen(). Созданные объекты, описывающие каждый из дочерних процессов, помещаются в список lp. Дальнейшее управление дочерними процессами осуществляется на основе этих объектов. Замечу, кстати, что с удалением дочернего процесса объект продолжает жить, показывая статус, что процесс завершён.
Замечание
Для упрощения тексты программы, я не стал добавлять в неё обработку разных не штатных ситуаций. Попробуйте добавить вы.
Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.