Linux signal()
转载请注明作者和原文出处,原文地址:https://blog.youkuaiyun.com/sym_07/article/details/87940232
1. 概念
- 信号(signal)是Linux进程间通信的一种机制,全称为软中断信号,也被称为软中断。信号本质上是在软件层次上对硬件中断机制的一种模拟。
2. 产生方式 :
- 可以由内核自身产生,比如出现硬件错误、内存读取错误,分母为0的除法等,内核需要通知相应进程.
- 其他进程产生并发送给内核,再由内核传递给目标进程。
3. 信号传递的过程:
一个完整的信号生命周期可以分为3个重要阶段,3个阶段由4个重要事件来刻画:
4. 信号的发送与捕捉
5.信号的处理
- 信号处理的主要方法有两种
- 1.使用简单的signal函数。
- 2.信号集函数组
6. 信号的响应
- 1.忽略信号,即对信号不做任何处理,但是有两个信号不能忽略,分别是SIGKILL,SIGSTOP
- 2.捕捉信号,定义信号处理函数,当信号发生时,执行相应的处理函数
- 3.执行缺省操作,Linux对每种信号都规定了默认操作
部分内容转自:
https://blog.youkuaiyun.com/weiyuefei/article/details/72518161
https://blog.youkuaiyun.com/qq_35420908/article/details/70175950
https://blog.youkuaiyun.com/u010155023/article/details/51984602
http://blog.youkuaiyun.com/yuzhihui_no1/article/details/44855419
https://blog.youkuaiyun.com/qq_36221862/article/details/70167847
https://blog.youkuaiyun.com/qq39221093/article/details/27495921