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

标签 python linux signals

我的 Python 程序在 ubuntu 终端窗口中运行。如果终端窗口直接关闭,需要发生一个事件,在该事件中我将向服务器发送一条消息,表明应用程序已退出。我尝试了以下但它不起作用。

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

signal.signal(signal.SIGTERM, window_handler) 

我也尝试过其他信号...我怎样才能做到这一点?提前致谢...

最佳答案

关闭一个终端将发送SIGHUP到以那个终端的伪tty作为他们的控制终端的进程。

因此捕获 SIGHUP 而不是 SIGTERM 应该可行。

我不确定在 Python 中处理信号时是否需要考虑一些特殊注意事项,但这是另一个问题的主题。 :)

关于python - 用于 Linux 的 Python 中的终端窗口关闭事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7318836/

相关文章:

python - 检查目录是否包含具有给定扩展名的文件

python - 尝试更新值为列表的字典中的值时出错

python - 将数据透视表转换为数据框

c - 使用工作线程模式时如何正确处理信号?

在发送 spider_closed 信号之前调用 Python Scrapy 函数?

c - 使用信号在父进程和多个子进程之间进行进程同步

python - 需要框架来处理 Redshift 和 python 之间的交互

ptrace 是否可以导致被跟踪进程在不访问可执行系统调用指令的情况下执行系统调用?

linux - 信号如何中断系统调用

c - 如何使用 C 程序在 Linux 中获取磁盘使用情况?