【问题标题】:SIGHUP & SIGCONTSIGHUP 和 SIGCONT
【发布时间】:2011-05-24 05:56:02
【问题描述】:

能否解释一下UNIX信号系统的逻辑:首先它向进程组发送SIGHUP信号,然后发送SIGCONT信号,尽管SIGHUP的主要思想是“杀死你自己,没有终端了”?

【问题讨论】:

    标签: unix process posix signals


    【解决方案1】:

    如果进程被 SIGSTOP 停止(例如,当您按 CTRL+Z 时发生)并且因此无法响应 SIGHUP

    【讨论】:

    • 但是为什么会有这么大的区别呢?没被拦住的就被杀了,睡着的就干脆继续?..
    • @DimG:不,只要他们继续,他们就会收到之前发送的 SIGSTOP。它不会被扔掉,它只需要等待。
    • 不是这样,任何给定信号的信号处理程序都会执行,而不管运行状态如何。 SIGHUP 导致进程 start 退出,但如果暂停,实际上不会发生太多事情,因为信号处理程序中可能发生的事情非常有限。 SIGCONT 恢复进程,并允许任何不能在信号处理程序中发生的逻辑发生。
    • @thejh:有趣。为什么不先发送 SIGCONT 然后发送 SIGHUP 而不是 SIGHUP->SIGCONT?
    • @DimG:这会产生竞争条件。如果您发送 SIGCONT,另一个进程发送 SIGSTOP,然后您发送 GIGHUP,该怎么办?这行不通。
    猜你喜欢
    • 2013-07-20
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    相关资源
    最近更新 更多