linux /proc/< pid>status SigIGN字段

tquggr8v  于 2023-10-16  发布在  Linux
关注(0)|答案(2)|浏览(109)

是否有任何网址,我可以得到一些关于/proc/<pid>/status的信息。特别是以下领域:

SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000

或者有人能给给予一些指点吗?.

qqrboqgw

qqrboqgw1#

Man proc(5)记录了所有这些条目。
从我的系统上的手册页,它比我见过的一些online版本(this one's better)更全面:

  • SigPnd、ShdPnd:线程和进程作为一个整体挂起的信号数(参见pthreads(7)和signal(7))。
  • SigBlk、SigIgn、SigCgt:表示信号被阻止、忽略和捕获的掩码(参见信号(7))。奥克引号

从本质上讲,它们是等待传递的信号的计数和位掩码(即,已发送,但未接收)到所讨论的进程或线程以及被阻塞/忽略/传递的信号。

p1tboqfb

p1tboqfb2#

为了解码信号的位列表,我使用:

[mvutcovi@mvutcovi-lap2 ~]$ cat signals.sh 
#read -p "PID=" pid
pid=$1
cat /proc/$pid/status|egrep '(Sig|Shd)(Pnd|Blk|Ign|Cgt)'|while read name mask;do
    bin=$(echo "ibase=16; obase=2; ${mask^^*}"|bc)
    echo -n "$name $mask $bin "
    i=1
    while [[ $bin -ne 0 ]];do
        if [[ ${bin:(-1)} -eq 1 ]];then
            kill -l $i | tr '\n' ' '
        fi
        bin=${bin::-1}
        set $((i++))
    done
    echo
done
# vim:et:sw=4:ts=4:sts=4:

相关问题