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 信号。
我已经构建了一个 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 信号。