【发布时间】:2016-06-16 19:45:36
【问题描述】:
我已阅读有关 linux 进程中的信号处理的信息。我正在使用 centOS 7.1(内核 3.10+)。我只在我的 c++ 程序中为 SIGTERM 注册处理程序。据我所知(不确定我的假设是否正确)。我们可以使用 SigCgt 字段掩码在 /proc/$pid/status 文件中检查进程正在侦听的所有信号。我的进程的 /proc/$pid/status 显示 SigCgt 字段如下:-
SigCgt: 0000000184000200 ==> BitMask for this 0001 1000 0000 0000 0000 0100 0010 0000 0000
据我所知,每一位对应一个信号。因为对应于 SIGTERM 的 15th 位在上面的掩码中是1。它表示 SIGTERM 的信号处理程序已注册。
我的问题是,即使我没有注册任何信号处理程序,SigCgt 字段值也保持不变。那么为什么在 SigCgt 位掩码中设置了几个位,包括 15th 位(which is for SIGTERM)?
非常感谢任何帮助。我已经做了足够的谷歌搜索,但找不到任何合适的解释。 此外,如果有人能指出正确的文档或链接,那将是一个很大的帮助。
提前致谢。
【问题讨论】: