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

Linux:如何查看活动进程是否设置了信号处理程序?,linux,signals,Linux,Signals,有一个进程正在愉快地运行,我想知道它是否设置了一些信号处理程序。 我记得我曾经在某个地方读过一些关于这方面的东西,但没有找到这样的信息。可能吗 谢谢您可以在检查/proc/PID/status文件时检测到这一点 SigCgt掩码显示应用程序捕获的信号。(请参阅sigmask解释)我很喜欢这一点-大概这些实际上是信号集 cat/proc/self/status | grep-i'^Sig' SigQ: 0/31404 SigPnd: 0000000000000000 SigBlk: 00000

有一个进程正在愉快地运行,我想知道它是否设置了一些信号处理程序。 我记得我曾经在某个地方读过一些关于这方面的东西,但没有找到这样的信息。可能吗


谢谢

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


SigCgt
掩码显示应用程序捕获的信号。(请参阅sigmask解释)

我很喜欢这一点-大概这些实际上是信号集

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

SigQ:   0/31404
SigPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000803
SigCgt: 0000000180014664
似乎可以制作一个实用程序来打印出来,除非有人已经知道了

hmmm-是时候为procfs读取一些内核代码了

从这篇优秀的文章中:


在U&L上有一个关于SigCgt掩码的很好的解释:
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