做linux开发的很多人都会遇到这个问题吧,上篇blog也提到过,原因主要有两个:

一是进程已经成为僵死进程,当它的父进程将它回收或将它的父进程kill掉即可在ps输出看不到了;
二是进程正处在内核状态中,Linux进程运行时分内核和用户两种状态,当进程进入内核状态后,会屏蔽所有信号,包括SIGKIL,所以这个时候kill -9也变得无效了。

下面就第二方面举个例子,进程处在内核态杀不死,多半是由于驱动程序有问题造成的,在阻塞型的驱动,是否用了正确的内核函数调用,或者结束休眠后是否做了恰当的处理?这都关系到是否可以通过信号杀死进程。

举个简单的例子:

while(dev->flag == 0)
  {
  up(&(dev->my_mutex));
   wait_event_interruptible(dev->my_queue, dev->flag);
   
  if(down_interruptible(&(dev->my_mutex)))
  {
  printk("There is a single break us to get the semaphore!\n");
  }
 }
 上面这段代码 ,只要dev->flag == 0满足 ,这个进程就run forever了。

而进行如下修改后

while(dev->flag == 0)
  {
  up(&(dev->my_mutex));
  ret = wait_event_interruptible(dev->my_queue, dev->flag);
  if(ret)
   {
   return -ERESTARTSYS;
  }
  
  if(down_interruptible(&(dev->my_mutex)))
  {
  printk("There is a single break us to get the semaphore!\n");
  }
 }
 则会被正常杀死

以上仅是一个最简单举例,说明一下由驱动造成的进程无法杀死的情况。

杀不死进程怎么办(by liukun321咕唧咕唧)相关推荐

  1. Linux杀不死木马,杀不死进程,自启动进程

    Linux中杀不死进程,杀不死木马,删不掉,自己启动木马 因内网服务器端口映射公网没有修改弱密码,导致暴力破解服务器被挂木马,详细流程如下 1查询操作历史日志 发现日志被删,无法得知他做了什么 2.使 ...

  2. Linux下kill -9杀不死进程或杀死又自动启动,解决

    问题描述 在ubuntu下 kill -9 杀死进程时候发现杀不死,或者是杀死了立刻又重启. 原因是该进程的父进程还在,所以会杀死进程后又自动启动了,看起来是我们没kill掉一样. 解决方法 ps - ...

  3. 【Linux】使用kill命令杀不死进程

    想杀死redis进程,使用kill命令无效 kill pid  是给pid进程发SIGTERM信号,接受进程可以处理,可能杀不死 kill -9 pid  是给pid进程发SIGKILL信号,接受进程 ...

  4. kill 杀不死进程的原因

    kill -9发送SIGKILL信号将其终止,但是以下两种情况不起作用: a.该进程处于"Zombie"状态(使用ps命令返回defunct的进程). 此时进程已经释放所有资源,但 ...

  5. 卧槽!kill -9 竟然杀不死进程...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/uEvQN ...

  6. Linux杀不死进程怎么办(kill 失效)

    最近在维护服务器的时候发现一些进程无法使用 kill -9 pid 或者 killall -u username杀死.并且最奇怪的是进程并不是出于僵尸状态而是一直显示running也没有保护进程,查了 ...

  7. docker容器杀不死_了解如何停止,杀死和清理Docker容器

    docker容器杀不死 In the previous article 'learn how to create and start Docker containers', we discussed ...

  8. app之 杀不死的进程

    有些需求要求app进程杀不死 我觉的扯再多都是没用的  不如 给你们看看~~~人家是如何实现的 demo是可以用的 我已经测试成功了 感觉很厉害哦~~好佩服的哦~~~哦哦哦~~~    常驻进程 An ...

  9. Android_常驻进程(杀不死的进程)

    Android常驻进程,就是要让进程在内存中永远存在,让进程保活,不被杀死.可能这时都会喷,这不是流氓软件吗?刚接触android的时候,我也是认为这是很流氓的做法,可是慢慢发现很多场景(应用),要为 ...

最新文章

  1. tableView的plain样式的headerView的上拉过程中悬停解决方法
  2. 20145202马超 2016-2017-2 《Java程序设计》第一次实验
  3. 计算机软考笔记之《数据库基础》
  4. CopyTranslator v0.0.8 Zouwu RC1 发布
  5. This time, ZTE has released the world‘s first
  6. 国产操作系统往事:四十年激变,终再起风云
  7. 查看oracle的版本、所在表空间、字符集及查询一个表的所有字段名和数据类型
  8. 线程池——JAVA并发编程指南
  9. mysql hy000 死锁_mysql 数据库死锁-解决
  10. 射频电子电路设计图集---研读
  11. Linux学习笔记(更新中)
  12. 联想小新打印机M7268W配置步骤
  13. 华为网络技术大赛2017 考后感
  14. 【STM32】电容触摸按键
  15. Linux操作系统基础命令
  16. DBC文件解析,基于致远电子DBC_demo
  17. 如果不知道这4种缓存模式,敢说懂缓存吗?
  18. 虚拟机类加载机制(类加载过程)
  19. LeetCode-241. Different Ways to Add Parentheses [C++][Java]
  20. 概率论基础-泊松分布计算近似概率

热门文章

  1. 电脑屏幕上计算机闪烁有框,计算机屏幕闪烁的常见原因和解决方法
  2. 主动攻击与被动攻击和网络安全
  3. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model
  4. 我的世界低延迟的服务器,TcpAckFrequency——降低服务器延迟!!!
  5. 伙伴云戴志康:如何利用低代码提升研发和IT效能
  6. 从毫米波雷达到摄像头软件再到激光雷达,传统供应商海拉是如何拥抱自动驾驶的?...
  7. 配置以太坊Ropsten客户端
  8. java正则表达式解析
  9. erp沙盘采购总监的心得_采购总监心得体会
  10. 【pandas-汇总3】DataFrame常用属性、函数以及索引方式