Есть ли способ убедиться, что все созданные подпроцессы не работают во время выхода из программы Python? Под подпроцессом я подразумеваю те, что созданы с помощью subprocess.Popen ().
Вы можете нарушить инкапсуляцию и проверить , что все процессы Popen завершены, выполнив
subprocess._cleanup()
print subprocess._active == []
Если нет, должен ли я выполнить итерации по всем убивающим действиям, а затем убить -9? что-нибудь чище?
Вы не можете гарантировать, что все подпроцессы мертвы, не выходя и не убивая каждого выжившего. Но если у вас есть эта проблема, вероятно, это из-за более глубокой проблемы проектирования.