Under Linux, you can find the PID of your process, then look at /proc/$PID/status. It contains lines describing which signals are blocked (SigBlk), ignored (SigIgn), or caught (SigCgt).
# cat /proc/1/status
...
SigBlk: 0000000000000000
SigIgn: fffffffe57f0d8fc
SigCgt: 00000000280b2603
...
The number to the right is a bitmask. If you convert it from hex to binary, each 1-bit represents a caught signal, counting from right to left starting with 1. So by interpreting the SigCgt line, we can see that my init process is catching the following signals:
00000000280b2603 ==> 101000000010110010011000000011
| | | || | || |`-> 1 = SIGHUP
| | | || | || `--> 2 = SIGINT
| | | || | |`----------> 10 = SIGUSR1
| | | || | `-----------> 11 = SIGSEGV
| | | || `--------------> 14 = SIGALRM
| | | |`-----------------> 17 = SIGCHLD
| | | `------------------> 18 = SIGCONT
| | `--------------------> 20 = SIGTSTP
| `----------------------------> 28 = SIGWINCH
`------------------------------> 30 = SIGPWR
(I found the number-to-name mapping by running kill -l from bash.)
另外:
Each process has a list (bitmask) of currently blocked signals.
When a signal is blocked, it is not delivered (that is, no signal handling routine is called), but remains pending.
https://www.win.tue.nl/~aeb/linux/lk/lk-5.html
Linux下查看进程监听信号方法

博客介绍了在Linux下查看进程监听信号的方法。可先找到进程的PID,查看相关文件,其中包含描述信号被阻塞、忽略或捕获的行。通过将十六进制的位掩码转换为二进制,能确定捕获的信号。还给出了相关参考链接。
211

被折叠的 条评论
为什么被折叠?



