How to read bitmask for the signals

博客围绕Red Hat Enterprise Linux环境展开,主要探讨如何检查进程中被阻塞的信号。介绍了SigPnd、SigBlk、SigIgn、SigCgt等信号相关信息,并以SigBlk为例,说明了如何读取其位掩码,确认被阻塞的信号编号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://access.redhat.com/solutions/3478631

 SOLUTION 已验证 - 已更新 2019年二月27日17:02 - 

English 

环境

  • Red Hat Enterprise Linux

问题

  • How to check which signals are blocked for the process.

Raw

$ cat /proc/8843/status |grep ^Sig
SigQ:   1/62809
SigPnd: 0000000000000000
SigBlk: 0000000056727a01
SigIgn: 0000000000381000
SigCgt: 00000001c98044ff

决议

SigPnd: 0000000000000000: Signals Pending (Raised, but waiting to be acted upon potentially because they are blocked).

SigBlk: 0000000056727a01: Signals that are blocked by the process. This can be a temporary thing. The application can be coded in such a way to temporarily block a signal. The kernel will then delay delivery of that signal until such time as it becomes unblocked or the signals are asked to be delivered.

SigIgn: 0000000000381000: Signals that are ignored by the process. They are simply thrown away. (Except for SIGKILL and SIGSTOP, which cannot be ignored)

SigCgt: 00000001c98044ff: Signals that can be caught by the process.

  • Here's an example of how those bitmasks for SigBlk, SigCgt, etc can be read. Let's take SigBlk 0000000056727a01 as an example and convert the SigBlk to binary.

Raw

0000000056727a01 = 0101 0110 0111 0010 0111 1010 0000 0001

NOTE: The position of the set bits (1's) from right to left should map to the "kill -l" list of signals

$ kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX    
  • From above output it is confirmed signal numbers 1,10,12,13,14,15 etc are blocked.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值