Linux中Python的终端窗口关闭事件处理程序
我的Python程序在Ubuntu的终端窗口里运行。如果直接关闭这个终端窗口,我需要一个事件发生,这个事件会让我发送一个消息到服务器,告诉它这个应用程序已经退出了。我试过下面的代码,但没有成功。
def window_handler(self):
CommandExecutor.processCommands(0, ProjectConstants.EXIT)
signal.signal(signal.SIGTERM, window_handler)
我也试过其他的信号……我该怎么做到这一点呢?提前谢谢大家……
1 个回答
1
关闭一个终端时,会向那些把这个终端当作控制终端的进程发送一个叫做 SIGHUP
的信号。
所以,捕捉 SIGHUP
信号而不是 SIGTERM
信号应该是可行的。
我不太确定在处理 Python 中的信号时是否需要考虑一些特殊情况,但那是另一个问题了。:)