linux 僵尸进程解决办法
来源:互联网 发布:linux系统ping不通 编辑:程序博客网 时间:2024/06/06 00:26
一、现象:无法使用 kill -9 20592 , 杀死该子进程
二、原因:
父进程在fork产生子进程后,如果子进程死了,父进程没有进行回收,就会产生僵尸进程。
三、解决办法:
1、结束父进程,由父进程产生的僵尸进程也会回收处理
2、捕获子进程结束发给父进程的SIGCHLD信号,收到信号后执行waitpid函数进行回收处理
pid_t waitpid(pid_t pid, int *status, int options);
a、pid的参数说明:
pid<-1等待进程组号为pid绝对值的任何子进程。
pid=-1 等待任何子进程,此时的waitpid()函数就退化成了普通的wait()函数。
pid=0 等待进程组号与目前进程相同的任何子进程,也就是说任何和调用waitpid()函数的进程在同一个进程组的进程。
pid>0 等待进程号为pid的子进程。
b、status参数说明:
不关心子进程结束状态,直接传入NULL;
WIFEXITED(status)如果子进程正常结束,它就返回真;否则返回假。
WEXITSTATUS(status) 如果WIFEXITED(status)为真,则可以用该宏取得子进程exit()返回的结束代码。
WIFSIGNALED(status) 如果子进程因为一个未捕获的信号而终止,它就返回真;否则返回假。
WTERMSIG(status) 如果WIFSIGNALED(status)为真,则可以用该宏获得导致子进程终止的信号代码。
WIFSTOPPED(status) 如果当前子进程被暂停了,则返回真;否则返回假。
WSTOPSIG(status) 如果WIFSTOPPED(status)为真,则可以使用该宏获得导致子进程暂停的信号代码。
c、options:
不使用该参数功能, 传入0;
WNOHANG如果pid指定的子进程没有结束,则waitpid()函数立即返回0,而不是阻塞在这个函数上等待;
如果结束了,则返回该子进程的进程号。
WUNTRACED 如果子进程进入暂停状态,则马上返回
- linux 僵尸进程解决办法
- Linux--进程--僵尸进程
- linux中的。"僵尸"进程
- 关于linux 僵尸进程
- 关于linux 僵尸进程
- 关于linux 僵尸进程
- linux僵尸进程
- Linux僵尸进程
- Linux中的僵尸进程
- linux 僵尸进程
- linux 僵尸进程
- linux中的僵尸进程
- Linux的僵尸进程
- Linux 僵尸进程
- LInux中查杀僵尸进程
- linux僵尸进程
- Linux中僵尸进程
- Linux僵尸进程
- 文件备份类——copy别人的
- Spring源码分析3 — spring bean创建和初始化
- No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi
- Spark与Pandas中DataFrame对比
- 【Scikit-Learn 中文文档】机器学习: scikit-learn 中的设置以及预估对象
- linux 僵尸进程解决办法
- 欢迎使用CSDN-markdown编辑器
- Java reflect 反射机制与泛型擦除
- 搭建jdk+tomcat+eclipse开发环境
- 花样彩灯程序设计
- Scrapy 抓取疑惑问题,未解决!!!
- Python虚拟环境virtualenv保存库文件
- html指定360浏览器用何种内核渲染
- Mysql 查询语句优化原则