Это специально для Windows, у меня нет этой проблемы на linux системах.
Итак, у меня есть программа, которая создает подпроцессы при ее запуске. Эти подпроцессы будут корректно завершаться, если программа завершится нормально или даже с исключениями или событием ctrl + c, используя try
и KeyboardInterrupt
и finally
в if __name__ == '__main__':
Однако, если я убью программа в середине, я говорю о том, чтобы убить ее в PyCharm
, используя кнопку STOP
. Эти подпроцессы не будут завершены. Я не совсем уверен, какой сигнал посылает эта кнопка STOP
на Windows.
Я попытался обработать сигнал, используя signal.signal(signal.SIGTERM, handler)
. Это не работает, я пытался SIGTERM
, SIGINT
, (SIGKILL
, CTRL_C_EVENT
, CTRL_BREAK_EVENT
не работают в обработчике сигналов.). Ни один из них не работает. Я также прочитал этот пост: Как обрабатывать сигнал в python на windows машине
Как я могу грациозно выйти в этом сценарии? Эта кнопка STOP
в сценарии PyCharm.