У меня есть многопоточное приложение, написанное на Python, и при получении прерывания через Ctrl+C или иногда через kill приложение зависает. Трассировка стека представлена из одного потока, но приложение остается на переднем плане, и мне обычно приходится переводить его в фоновый режим с помощью Ctrl+Z, затем попытаться убить его.
Каков правильный способ обработки сигналов и прерываний клавиатуры внутри многопоточного приложения?