1.产生的原因或者条件
当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程;
2.如何去处理僵死进程?
(1)父进程先结束(子进程会变成孤儿进程,孤儿进程会被收养(红帽子是init(pid==1)收
养孤儿进程,Unbuntu是操作系统指定了一个进程));
(2)父进程调用wait()方法获取子进程的退出码;

1. #include <stdio.h>
2. #include <stdlib.h>
3. #include <unistd.h>
4. #include <string.h>
5. #include <assert.h>
6.
7. int main(int argc, char* argv[],char* envp[])
8. {
9. char * s = NULL;
10. int n = 0;
11.
12. pid_t pid = fork();
13. assert( pid != -1 );
14.
15. if ( pid == 0 )
16. {
17. s = "child";
18. n = 4;
19. }
20. else
21. {
22. s = "parent";
23. n = 10;
24. }
25.
26. int i = 0;
27.
28. for(; i < n; i++ )
29. {
30. printf("pid=%d,s=%s\n",getpid(),s);
31. sleep(1);
32. }
33.
34. exit(0);
35. }
运行结果如下图
处理僵死进程的方法二:父进程调用wait方法;
int val = 0;
27. int id = wait(&val);
28.
29. if ( WIFEXITED(val) )
30. {
31. printf("id=%d,val=%d\n",id,WEXITSTATUS(val));
32. }
33.
34. }
35.
36. int i = 0;
37. for( ; i < n; i++ )
38. {
39. printf("pid=%d,s=%s\n",getpid(),s);
40. sleep(1);
41. }
42.
43. exit(3);
44. }

一.僵死进程(僵尸进程)相关推荐

  1. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程

    其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给 ...

  2. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.

    其实有时想想linux内核的设计也蕴含着很多人生哲学,在linux中有这么几个特殊进程中,我们一开始见到它们的名字可能还会觉得很诧异,但在了解完了原理后,我们仔细想想,这样的命名也不无道理!下面我就给 ...

  3. 守护进程/僵尸进程/孤儿进程

    一 守护进程 守护进程就是在后台运行,不与任何终端关联的进程,,一个守护进程的父进程是init进程,它是一个孤儿进程,没有控制终端,所以任何输出,无论是向标准输出设备stdout还是标准出错设备std ...

  4. Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...

  5. linux系统编程学习_(2)进程控制-- fork函数、exec函数族、回收子进程--孤儿进程僵尸进程、wait函数

    linux系统编程学习_(2)进程控制-- fork函数.exec函数族.回收子进程–孤儿进程僵尸进程.wait函数 进程控制 fork()函数 创建一个子进程. pid_t fork(void); ...

  6. Kill杀死Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...

  7. java defunct怎么杀掉_杀死Linux中的defunct进程(僵尸进程)的方法指南

    一.什么是defunct进程(僵尸进程)在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状态时 ...

  8. 【Linux】如何杀掉defunct进程-僵尸进程

    如何杀掉defunct进程-僵尸进程 defunct进程(僵尸进程) 什么是僵尸进程 杀死僵尸进程 1.重启服务器 2.杀死父进程 defunct进程(僵尸进程) 什么是僵尸进程 僵尸进程是一个早已死 ...

  9. linux里面有mysql的僵尸进程_Linux中的defunct进程(僵尸进程)

    一.什么是defunct进程(僵尸进程)? 在 Linux 系统中,一个进程结束了,但是他的父进程没有等待(调用wait / waitpid)他,那么他将变成一个僵尸进程.当用ps命令观察进程的执行状 ...

最新文章

  1. 用 CentOS 做一个 BGP 路由器
  2. 超强平衡机器人,走钢丝、玩忍者步伐,还可以做瑜伽动作,不受干扰的那种 | IEEE 2020...
  3. key可以重复的map集合:IdentityHashMap
  4. LeetCode上删除链表末尾第N个节点算法——Remove Nth Node From End of List
  5. java自动触发_我们可以自动使用应用程序触发器调用后台任
  6. c++ opencv 识别车牌_小强学Python+OpenCV之-1.0开篇
  7. wincc服务器客户端用虚拟机,什么情况下用wincc服务器与客户端
  8. Spring Cloud Zuul网关集成JWT身份验证学习总结
  9. 北大中文核心期刊目录(2004年版)
  10. 用于网络销售的虚拟产品演示软件
  11. 新能源充电桩后台管理系统平台
  12. win10电脑:。。。该内存不能为written.要终止程序,请单击确定
  13. 写给Gallen1983
  14. [附源码]java毕业设计st音乐网站论文
  15. html复杂表格,横向多级表头,纵向多级表头,合并行或列
  16. 树莓派2022-04-04bullseye版本安装
  17. 销售管理系统C语言课程设计
  18. jzoj 3837 心灵终结
  19. m3u8文件里只有js链接,没有ts链接,和key文件的一点记录
  20. HTML5+CSS3小实例:有趣的沙漏加载动画

热门文章

  1. 熵值法与TOPSIS法以及两者结合
  2. hdu3397 线段树
  3. ctfshow node.js专题
  4. 2022年美化UI二开某技术导航天下PHP源码
  5. C语言鼠标操作方法及源码
  6. 【硬件之AD篇】两层PCB的各个板层分析
  7. DXP的使用及绘制PCB
  8. shortcut详解
  9. 有软件负载均衡,也有硬件负载均衡,选择哪个?
  10. android 绘画笔迹回放_一种基于可缩放矢量图形的安卓平台笔迹回放方法及装置与流程...