1.不要在信号处理函数中处理复杂的事情
2.信号处理函数中不能有互斥锁会造成死锁,可以用信号量替代
3.信号是置位方式实现,多次发送相同的信号可能只会收到一次
4.子进程具有继承父类信号屏蔽,不能在信号处理函数中启动自身
查看进程pcb(process control block)
/proc//status 文件更直观地查看到指定进程的信息屏蔽情况
cat /proc/21517/status
SIGUSR1=16=0x8000
SIGUSR2=17=0x10000
0x18000
SigBlk: 00000000000000000000000080018000
SigQ: 0/459
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000080000000
SigIgn: 00000000000000000000000000001000
SigCgt: 00000000000000000000000380018000
CapInh: 0000000000000000
SigPnd: 00000000000000000000000000000000
ShdPnd: 00000000000000000000000000000000
SigBlk: 00000000000000000000000080018000
SigIgn: 00000000000000000000000000001000
SigCgt: 00000000000000000000000380018000
SigPnd | The bitmap of pending signals
SigBlk | The bitmap of blocked signals
SigIgn | The bitmap of ignored signals
SigCgt | The bitmap of catched signals
Linux 信号以及开发中常见信号错误
https://blog.csdn.net/u010674648/article/details/78848909?utm_medium=distribute.wap_relevant.none-task-blog-title-4
Linux信号丢失问题分析
https://blog.csdn.net/gaoxuelin/article/details/9701147?utm_source=blogxgwz3
Linux信号透彻分析与理解
https://blog.csdn.net/dyzhen/article/details/85322111
信号的原理和利用--实现sleep函数
https://blog.csdn.net/stay_the_course/article/details/72902501