Моя программа Python запускается в окне терминала Ubuntu. Если окно терминала закрыто, необходимо событие, и в этом случае я отправлю на сервер сообщение о том, что приложение завершено. Я попытался сделать следующее, и это не сработает.
def window_handler(self):
CommandExecutor.processCommands(0, ProjectConstants.EXIT)
signal.signal(signal.SIGTERM, window_handler)
Я тоже пробовал другие сигналы... Как я мог это достичь? Заранее спасибо...
Закрытие терминала отправляет SIGHUP
в процессы, которые имеют терминал-псевдоним в качестве управляющего терминала.
Таким образом, работа над SIGHUP
вместо SIGTERM
должна работать.
Я не уверен, есть ли какие-то особые соображения, которые необходимо учитывать при обработке сигналов в Python, но это тема для другого вопроса. :)