/ proc / <pid>状态SigIGN字段</pid>

时间:2010-11-11 14:38:15

标签: linux

是否有任何URL我可以获得有关/ proc // status的一些信息。特别是以下字段。

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

或者有人可以给它一些指针吗?。

2 个答案:

答案 0 :(得分:7)

Man proc(5)记录了所有这些条目。

从我的系统上的联机帮助页面,这比我见过的onlinethis one's better版本更全面:

  
      
  • SigPnd,ShdPnd:线程和整个进程的待处理信号数(参见pthreads(7)和signal(7))。
  •   
  • SigBlk,SigIgn,SigCgt:掩码表示信号被阻塞,被忽略和被捕获(见信号(7))。   ockquote
  •   

基本上,它们是等待传送(即已发送但未接收)信号的计数和位掩码到有问题的进程或线程以及被阻止/忽略/传递的信号。

答案 1 :(得分:0)

要解码信号的位列表,我正在使用:

[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: