Linux:如何看一个活着的进程是否有信号处理程序?

有一个过程快乐的跑步,我不知道它是否设置了一些信号处理程序。 我记得我曾经在某个地方看过这个东西,但是找不到这样的信息。 可能吗?

谢谢

你可以在检查/proc/PID/status文件的时候检测到这个。

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

得到的爱 – 大概这些实际上是信号集…

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