加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – SIGKILL信号处理

发布时间:2020-12-13 19:51:14 所属栏目:Linux 来源:网络整理
导读:如果 linux进程正在等待I / O(即它处于SLEEP状态)并且发出了针对它的SIGKILL信号,则在终止(STOPPED状态)时它是否会通过RUNNING或READY状态? 换句话说,对于处理系统中断的进程,例如SIGKILL生成的进程,是否需要通过RUNNING或READY状态? 知道在正常情况下进程
如果 linux进程正在等待I / O(即它处于SLEEP状态)并且发出了针对它的SIGKILL信号,则在终止(STOPPED状态)时它是否会通过RUNNING或READY状态?

换句话说,对于处理系统中断的进程,例如SIGKILL生成的进程,是否需要通过RUNNING或READY状态?

知道在正常情况下进程可以处理来自内核的中断并且知道SIGKILL具有杀死无响应信号的相当矛盾的目的,我怀疑对被杀死的进程有多少控制,如果有的话.

解决方法

信号由内核“切换”到进程,因此从processA向processB发送信号使用内核.当交付SIGKILL时,内核不允许进程(用户模式)进行任何活动,特别是进程纲要:atexit调用,_exit.没有.该过程简单地被系统破坏.这涉及内核模式中的一些活动.缓冲数据丢失. SYSV信号量和其他内核持久性内存对象留在内存中.这可能是一个真正的混乱.

如果内核内存中的某些内容导致挂起,则使用linux中的sysrq接口:

http://tldp.org/HOWTO/Remote-Serial-Console-HOWTO/security-sysrq.html

– 执行任何可以获得的有序关闭的外观.

这就是为什么使用SIGKILL是绝对的最后手段,因为你无法知道你在打破什么.它不会修复所有挂起.

你到底在做什么?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读