杀不死进程怎么办(by liukun321咕唧咕唧)
做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咕唧咕唧)相关推荐
- Linux杀不死木马,杀不死进程,自启动进程
Linux中杀不死进程,杀不死木马,删不掉,自己启动木马 因内网服务器端口映射公网没有修改弱密码,导致暴力破解服务器被挂木马,详细流程如下 1查询操作历史日志 发现日志被删,无法得知他做了什么 2.使 ...
- Linux下kill -9杀不死进程或杀死又自动启动,解决
问题描述 在ubuntu下 kill -9 杀死进程时候发现杀不死,或者是杀死了立刻又重启. 原因是该进程的父进程还在,所以会杀死进程后又自动启动了,看起来是我们没kill掉一样. 解决方法 ps - ...
- 【Linux】使用kill命令杀不死进程
想杀死redis进程,使用kill命令无效 kill pid 是给pid进程发SIGTERM信号,接受进程可以处理,可能杀不死 kill -9 pid 是给pid进程发SIGKILL信号,接受进程 ...
- kill 杀不死进程的原因
kill -9发送SIGKILL信号将其终止,但是以下两种情况不起作用: a.该进程处于"Zombie"状态(使用ps命令返回defunct的进程). 此时进程已经释放所有资源,但 ...
- 卧槽!kill -9 竟然杀不死进程...
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | https://urlify.cn/uEvQN ...
- Linux杀不死进程怎么办(kill 失效)
最近在维护服务器的时候发现一些进程无法使用 kill -9 pid 或者 killall -u username杀死.并且最奇怪的是进程并不是出于僵尸状态而是一直显示running也没有保护进程,查了 ...
- docker容器杀不死_了解如何停止,杀死和清理Docker容器
docker容器杀不死 In the previous article 'learn how to create and start Docker containers', we discussed ...
- app之 杀不死的进程
有些需求要求app进程杀不死 我觉的扯再多都是没用的 不如 给你们看看~~~人家是如何实现的 demo是可以用的 我已经测试成功了 感觉很厉害哦~~好佩服的哦~~~哦哦哦~~~ 常驻进程 An ...
- Android_常驻进程(杀不死的进程)
Android常驻进程,就是要让进程在内存中永远存在,让进程保活,不被杀死.可能这时都会喷,这不是流氓软件吗?刚接触android的时候,我也是认为这是很流氓的做法,可是慢慢发现很多场景(应用),要为 ...
最新文章
- tableView的plain样式的headerView的上拉过程中悬停解决方法
- 20145202马超 2016-2017-2 《Java程序设计》第一次实验
- 计算机软考笔记之《数据库基础》
- CopyTranslator v0.0.8 Zouwu RC1 发布
- This time, ZTE has released the world‘s first
- 国产操作系统往事:四十年激变,终再起风云
- 查看oracle的版本、所在表空间、字符集及查询一个表的所有字段名和数据类型
- 线程池——JAVA并发编程指南
- mysql hy000 死锁_mysql 数据库死锁-解决
- 射频电子电路设计图集---研读
- Linux学习笔记(更新中)
- 联想小新打印机M7268W配置步骤
- 华为网络技术大赛2017 考后感
- 【STM32】电容触摸按键
- Linux操作系统基础命令
- DBC文件解析,基于致远电子DBC_demo
- 如果不知道这4种缓存模式,敢说懂缓存吗?
- 虚拟机类加载机制(类加载过程)
- LeetCode-241. Different Ways to Add Parentheses [C++][Java]
- 概率论基础-泊松分布计算近似概率
热门文章
- 电脑屏幕上计算机闪烁有框,计算机屏幕闪烁的常见原因和解决方法
- 主动攻击与被动攻击和网络安全
- 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 Training a GPT-2 language model
- 我的世界低延迟的服务器,TcpAckFrequency——降低服务器延迟!!!
- 伙伴云戴志康:如何利用低代码提升研发和IT效能
- 从毫米波雷达到摄像头软件再到激光雷达,传统供应商海拉是如何拥抱自动驾驶的?...
- 配置以太坊Ropsten客户端
- java正则表达式解析
- erp沙盘采购总监的心得_采购总监心得体会
- 【pandas-汇总3】DataFrame常用属性、函数以及索引方式