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

X.M*_*.M. 13 linux signals

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

谢谢

cha*_*ess 12

得爱 - 可能这些实际上是信号集......

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

SigQ:   0/31404
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000803
SigCgt: 0000000180014664
Run Code Online (Sandbox Code Playgroud)

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

嗯 - 时间读取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
Run Code Online (Sandbox Code Playgroud)


Céd*_*ien 10

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

SigCgt面具您的应用程序显示已捕获信号.(参见man 7 signal sigmask解释)