Linux:如何查看生活过程是否设置了信号处理程序?

时间:2011-05-12 08:27:45

标签: linux signals

有一个流程快乐运行,我想知道它是否设置了一些信号处理程序。 我记得我曾经在某处读过一些关于此的内容,但却找不到这样的信息。有可能吗?

由于

2 个答案:

答案 0 :(得分:12)

得喜欢这个 - 大概这些实际上是信号集......

cat / proc / self / status | grep -i'^ Sig'

SigQ:   0/31404
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000803
SigCgt: 0000000180014664

似乎可以制作一个实用程序来打印出来 - 除非有人知道一个吗?

嗯 - 时间读取procfs的一些内核代码

来自这篇优秀的文章:

http://kernel.org/doc/Documentation/filesystems/proc.txt

SigQ                        number of signals queued/max. number for queue
SigPnd                      bitmap of pending signals for the thread
ShdPnd                      bitmap of shared pending signals for the process
SigBlk                      bitmap of blocked signals
SigIgn                      bitmap of ignored signals
SigCgt                      bitmap of catched signals

答案 1 :(得分:10)

您可以在检查/proc/PID/status文件时检测到这一点。

SigCgt掩码显示应用程序捕获的信号。 (有关sigmask的解释,请参阅man 7 signal