当前位置:  技术问答>linux和unix

为什么会产生很多僵死进程?

    来源: 互联网  发布时间:2015-01-16

    本文导语:  在子进程结束后产生了僵死进程,用了signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)都不行,两个能一起用吗? | 只有长期运行而且要产生子进程的程序才需要用wait或waitpid。 僵死进程产生的原因:        子...

在子进程结束后产生了僵死进程,用了signal(SIGCHLD,SIG_IGN)和signal(SIGCLD,SIG_IGN)都不行,两个能一起用吗?

|
只有长期运行而且要产生子进程的程序才需要用wait或waitpid。
僵死进程产生的原因:
       子进程退出后(不管是否是正常退出),它在内存中会遗留部分信息成为一个僵死进程,同时内核会向其父进程发送SIGCHLD(或SIGCLD)信号。此时要分几种情况:
     1、父进程处理SIGCHLD信号,调用wait,僵死进程消失。这样我们就看不到僵尸进程。
     2、父进程忽略SIGCHLD信号,随着子进程不断产生、结束,僵死进程的数目不断增加,导致影响系统速度及其他一些问题。
    不需长期运行的程序,即使产生子进程也不会导致大量僵死进程存在。因为,父进程退出时,其产生的子进城成为“孤儿“进程,由init(1号进程)进程接管,init进程在子进程退出时会处理SIGCHLD信号,给子进程“收尸“。
 推荐搂主看本书--《Advanced Programming in the UNIX Environment》(Richard Stevents著)。


|
解决办法:
在父进程中用wait()或waitpid()来接收终止的子进程。

|
to  yanyanyan(西门吹盐) ( ) 信誉:100  2002-11-27 10:50:00  得分:0 

APUE上是这么说的,不过是指明了版本的.SVR4不会产生僵尸,而4.3+BSD必须wait  waitpid 才能避免产生僵尸进程。
两次fork要保证父进程在子进程退出前exit.

    
 
 

您可能感兴趣的文章:

  • 在shell中调用自己的程序,每次都产生一个僵死进程,(同学帮帮我!)
  • 在LINUX/UNIX中僵尸进程是如何产生的?怎样才能避免僵尸进程的产生?
  • ScoOpenServer下的进程产生core,如何判断是哪个程序产生的?
  • 用fork产生一个进程,但是在子进程里无法监视父进程变量的变动。
  • 请教如何编程实现父进程产生多个子进程
  • 如何得知子孙进程中有孤立进程产生
  • 多进程的并发系统中,肯定不会因竞争( )而产生死锁。
  • 问一个很基础的问题,单进程会不会产生死锁?
  • 进程异常退出时 Unix 在什么情况下会不产生 core dump 文件?
  • 关于system 调用shell 产生sh进程,如何把sh进程关掉...
  • 请教关于 linux pppoe产生僵尸进程的问题
  • 问一个关于多进程中通信产生冲突等方面的问题
  • linux产生的进程号规则
  • 由信号量产生的问题:能否更改操作系统的默认行为,当进程非正常退出时,都能够产生core文件?
  • 请问进程的stat是D是如何产生的
  • 深入分析父子线程、进程终止顺序不同产生的结果
  • 主进程select,子进程退出会产生EINTR信号么?
  • fork调用产生的子进程,还能不能创建下一级的子进程?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SIGRTMIN-SIGRTMAX的信号,是OS产生的,还是用户程序产生的?
  • unix下如何利用core文件找到产生它的具体程序及产生错误的代码位置
  • 雷老虎,我实在想不通下面代码了:为什么产生产生的号码一样?(有时候前几组一样,后几组一样)
  • 关于accept()函数能产生多少个套接字和在LINUX 能产生多少个线程
  • 如何让系统不产生core文件?
  • 编程语言 iis7站长之家
  • JavaBean 不能产生适配器
  • 产生信号的键盘方式?
  • linux编译产生的.o.cmd文件有什么作用?
  • 如何产生一个临时文件名?
  • 菜鸟提问:编写16字谜时如何使按扭不产生"按下"的效果?
  • 高分求救!一个随机数产生的问题
  • Redhat7.3的文件系统是不是默认不产生core文件?
  • 如何去除批处理虚拟机产生的dos黑框?
  • Linux下是不是有一个命令(设备)可以随机的产生一些二进制的数据呀?!
  • **简单问题,怎样在TextField的内容改变时产生响应**
  • 无法确定主机IP地址时产生。
  • 怎样产生一随机数,请教
  • 如何使程序产生core文件?
  • 如何产生随机数啊?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3