Unix进程控制之4---避免产生僵死进程

28 篇文章 0 订阅

在前一部分提到了僵死进程的概念,如果我们写一个进程,这个进程fork 了一个新的子进程。而,我们不想等待这个进程完全结束,不想在主程序结束时,这个子进程变成僵死进程。利用量词调用 fork 可以达到这一目标。

下面为一个例子,及解释:

Ubuntu10.4上的结果:

Main pid is 2736.

child pid is 2737,and my ppid is 2736.

child pid is 2737,and my ppid is 2736,i will die.

My pid is 2736,i have waitted 2737 died.

second child,my pid is 2738, parent pid = 1

总结:

在程序中,主程序中等待了第一个子进程结束,使第一个子进程不会产生僵死。在第一个子进程中,产生第二个子进程。第二个子进程休眠 2秒,等待其父进程(第一个子进程)结束。这是第二个子进程由于在退出前,其父进程提前结束,其父进程变为init。避免产生僵死。为最终需要的目标进程。

在设计中,如果需要一个进程运行时间很长,并且避免产生僵死,则可以在第二个子进程中执行需要的指令。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值