Linux基础:信号的定义,处理方式,修改信号的响应方式,向指定的进程发送指定的信号以及僵死进程和处理方法

本文介绍了Linux系统中信号的基本概念,包括信号的定义、处理方式(默认、忽略、自定义),并通过示例展示了如何使用`signal()`函数修改信号响应。此外,讲解了如何使用`kill()`函数向进程发送信号。文章还探讨了僵死进程的产生及其处理方法,包括三种处理僵死进程的策略。最后,简述了信号在内核中的实现原理。
摘要由CSDN通过智能技术生成

1.信号的定义及处理方式:

信号是系统响应某个条件而产生的事件,进程接收到信号会执行相应的操作(通知进程产生了某个事件),由其他进程或者内核发送信号,当收到一个信号,按照3种处理方式(响应):1.默认 2.忽略 3. 自定义

通过signal()来改变信号的响应方式;通过kill()发送信号。

把可能发生的事件全部进行了编号(每一个信号都有一个编号:如2号信号,键盘按下Ctrl+c时,就会产生该信号;9号信号是按默认的响应方式,其响应方式不允许改变;17号信号,子进程结束以后,会默认给父进程发送该信号),以便该事件发生后以对应的编号来通知。

与信号有关的系统调用在“signal.h”头文件中有声明
常见信号的值,及对应的功能说明:

接下来在程序中演示2号信号(容易实现)。 在键盘上按下 Ctrl+c 时,会给当前终端前台执行的进程发送 SIGINT 信号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值