Как перезапустить процесс?
Невозможно перезапустить завершенный процесс.Вам нужно создать новый процесс.
Как только он завершит свою работу, почему он собирается использовать мод зомби?
Поскольку в системах Unix-y родительский процесс должен прочитатькод выхода до того, как ядро очистит соответствующую запись из таблицы процессов.
Как удалить процесс зомби?
У вас есть несколько вариантов.Я цитирую документы здесь:
Присоединение к процессам зомби
В Unix, когда процесс завершается, но не присоединен, он становится зомби.Никогда не должно быть очень много, потому что каждый раз, когда начинается новый процесс (или вызывается active_children ()), все завершенные процессы, которые еще не были присоединены, будут объединены.Также вызов завершенного процесса Process.is_alive присоединится к процессу.Даже в этом случае, вероятно, хорошей практикой является явное объединение всех процессов, которые вы запускаете.
На самом деле я пытаюсь создать функцию монитора процесса для наблюденияиспользование памяти и процессора всеми процессами.
Для этого вы должны взглянуть на модуль psutil .
В случае, если вы просто хотите приостановить (не убивает) процессы, если потребление памяти становится слишком высоким, вы можете черпать вдохновение из моего ответа здесь .