Qt app分叉到后台时意外收到HUP信号

时间:2015-03-02 15:44:06

标签: qt signals fork daemon signals-slots

我已经构建了一个Qt应用程序,在收到HUP信号时很好地关闭(设置如此how to get signals into Qt)。这在Red Had 6下工作得很好,但是当我在Ubuntu 14下运行这个应用程序时,我的应用程序立即收到HUP信号(在后台运行之后),然后关闭 - 即使我没有发送HUP。此外,这只发生在我的应用程序分叉并在后台运行时 - 如果我在前台运行我的应用程序它不会意外收到hup。

还有其他原因导致它在守护进程时收到HUP信号吗? (为什么在一个发行版下而不是另一个发行版)

1 个答案:

答案 0 :(得分:0)

当进行守护进程(分叉)时,父进程在退出时发出HUP信号。出于某种原因,Red Hat这个信号直到很久之后才会触及子进程。在Ubuntu上,信号快速击中孩子(或者Ubuntu可能为孩子保留信号)。

解决方案是确认父进程已终止,然后挂钩到HUP信号。