Qt 应用程序分叉到后台时意外收到 HUP 信号

Qt app receives HUP signal unexpectedly when forked to background

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

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

当守护进程(分叉)时,parent 进程在退出时发出 HUP 信号。由于某些原因,在 Red Hat 上,这个信号直到很久以后才到达 child 进程。在 Ubuntu 上,信号很快到达 child(或者 Ubuntu 可能保持 child 的信号)。

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