Linux信号(signal)----信号产生的条件及信号的处理
来源:互联网 发布:网络上玩龙虎犯法吗 编辑:程序博客网 时间:2024/06/08 10:45
信号是一种通知机制。一个进程或操作系统或用户向另一个进程发送通知事件的方式。
进程如何知道自己收到信号了,PCB里多了一个信号。
进程在没遇到信号之前就已经知道如何处理信号了,就比如小孩子在没见过红绿灯之前就已经知道红灯停绿灯行的道理。(因为记住了)。
Linux中有62个信号:
1-31号:普通信号 34-64号:实时信号 9号进程永远不会被捕捉到
键盘组合只能向前台进程发送信号
后台进程不能用Ctrl+C终止掉
若前台有10个进程,按Ctrl+C,则这10个进程全部被终止掉。
信号产生的条件:
1、键盘组合键,终端程序发送信号给前台进程。
2、 硬件异常产⽣信号,这些条件由硬件检测到并通知内核,然后内核向当前进程发送适当的信号。做除0操作导致硬件异常,会收到8号信号。如下:
3、 一个进程调⽤用kill(2)函数可以发送信号给另一个进程。 可以⽤用kill(1)命令发送信号给某个进程,kill(1)命令也是调⽤kill(2)函数实现的,如果不明确指定信号则发送SIGTERM信号,该信号的默认处理动作是终⽌进程。
信号的处理:
1、忽略此信号。
2、执行该信号的默认处理动作。
3、捕捉信号:提供一个信号处理函数,要求内核在处理该信号时切换到⽤户态执行这个处理函数。
用户态和内核态的四次状态切换。
将Ctrl+C自定义后,不能使进程退出,但可证明确实发了2号信号
证明Ctrl+C确实收到了2号信号,该组合键被操作系统识别为2号信号
0 0
- Linux信号(signal)----信号产生的条件及信号的处理
- linux --- 信号 --- 信号的产生
- linux的信号(signal)
- Linux的signal信号处理;好多信号还没看呢
- 信号---信号的产生
- Linux信号(Signal)处理
- Linux 信号处理signal
- php的信号(signal)处理
- signal 11信号的处理
- signal()设置信号的处理
- Linux Signal及Golang中的信号处理
- Linux Signal及Golang中的信号处理
- 信号的产生以及处理
- 信号的产生于处理
- Linux的信号处理
- linux 信号的处理
- Linux的信号处理
- Linux的信号处理
- Python3学习笔记(urllib模块的使用)
- Android笔记:Android 7.0 FileUriExposedException 解决
- 与NWBC相关的服务器端配置
- java关键字和标识符
- 工程基础
- Linux信号(signal)----信号产生的条件及信号的处理
- Simhash算法原理和网页查重应用
- JAVA如何根据jsp页面时间(开始到结束时间)和checkbox选择不同的多少出现不同的曲线
- docker-建立私有registry(一)
- 对SQL语句中case when...then...else...end的理解
- JavaScript学习笔记12-数学运算
- Android 屏幕适配
- 算法时间复杂度(一)
- 欢迎使用CSDN-markdown编辑器