一、信号的四个要素是:信号名、信号编号、信号默认动作、事件描述。
Linux中查看各个信号详情使用命令: man 7 signal
二、信号的编号(可以用kill -l 查看信号的编号)
1、信号的分类
①常规信号:信号编号1-31号的信号
②实时信号:信号编号32-64的信号
2、为什么上图中有些信号的有三个编号?
答:三个值分别是三个不同CPU架构对应的值,其中中间值是X86和ARM对应的信号编号。
三、信号的默认处理动作(action)
1、信号默认处理动作共有5种:
①Term:终止进程
②Ign:忽略信号
③Core:终止进程,生成core文件(该文件用于查验进程死亡原因,用于gdb调试)
④Stop:停止(暂停)进程
⑤Cont:继续运行进程
2、特别注意 9)SIGKILL 和 19)SIGSTOP,不可以忽略、屏蔽和捕捉,只能执行默认的动作。
四、信号名和事件描述
信号名要注意 19)SIGSTOP 和 20)SIGTSTP。具体信号描述可以查看APUE第三版P252。
五、信号的产生
1、按键产生信号
①Ctrl + c : 2)SIGINT (终止/中断) “INT”=“interrupt”
②Ctrl + z : 20)SIGTSTP(暂停/停止) “T”=“terminal”
③ Ctrl + \: 3)SIGQUIT(退出)
2、硬件异常产生的信号
①除0操作: 8)SIGFPE(浮点数例外)
②非法访问内存: 11)SIGSEGV(段错误)
③总线错误: 7)SIGBUS