【发布时间】:2012-11-22 05:11:21
【问题描述】:
在 Linux 2.6 中,我希望我的进程同时捕获 SIGHUP 和 SIGTERM 以便有序退出。
当节点关闭时,日志显示它将首先处理 SIGHUP(父进程收到 SIGTERM)或 SIGTERM。
我的问题是:是否有可能同时调用这些信号的处理程序?还是内核一个接一个地触发?
【问题讨论】:
-
关于第一个问题,我认为你不能那样做。但是关于第二个问题,您可以在处理程序中为 SIGHUP 执行 raise(SIGTERM),反之亦然。当然,您应该检查您是否没有来其他处理程序。
-
澄清一下:进程在关闭时会同时收到 SIGHUP 和 SIGTERM,因为它们会因关闭而收到 SIGTERM,并且因为父进程也会收到并死掉。