Linux中Python的终端窗口关闭事件处理程序

2 投票
1 回答
754 浏览
提问于 2025-04-17 01:34

我的Python程序在Ubuntu的终端窗口里运行。如果直接关闭这个终端窗口,我需要一个事件发生,这个事件会让我发送一个消息到服务器,告诉它这个应用程序已经退出了。我试过下面的代码,但没有成功。

def window_handler(self):
   CommandExecutor.processCommands(0, ProjectConstants.EXIT)             

signal.signal(signal.SIGTERM, window_handler) 

我也试过其他的信号……我该怎么做到这一点呢?提前谢谢大家……

1 个回答

1

关闭一个终端时,会向那些把这个终端当作控制终端的进程发送一个叫做 SIGHUP 的信号。

所以,捕捉 SIGHUP 信号而不是 SIGTERM 信号应该是可行的。

我不太确定在处理 Python 中的信号时是否需要考虑一些特殊情况,但那是另一个问题了。:)

撰写回答