是否有任何URL我可以获得有关/ proc // status的一些信息。特别是以下字段。
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000000000000
或者有人可以给它一些指针吗?。
答案 0 :(得分:7)
Man proc(5)
记录了所有这些条目。
从我的系统上的联机帮助页面,这比我见过的online个this 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: