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

【如何彻底杀死子进程】Kill -9子进程后进程呈僵死状态

    来源: 互联网  发布时间:2016-05-17

    本文导语:  应用程序中,父进程A创建子进程B,C,然后要Kill子进程,kill(pid,SIGKILL)。 发现Kill后,子进程呈僵死状态,没有完全清除,子进程各个线程的PID也没有释放。 这样,操作多次后(反复创建和杀死),不能创建任何进...

应用程序中,父进程A创建子进程B,C,然后要Kill子进程,kill(pid,SIGKILL)。

发现Kill后,子进程呈僵死状态,没有完全清除,子进程各个线程的PID也没有释放。

这样,操作多次后(反复创建和杀死),不能创建任何进程,系统提示“sh:Cannot fork”。

请问该如何彻底Kill子进程,还是我的这个系统有问题?

|
把子进程的父进程杀死就可以了。因为子进程退出后要等到其父进程调用wait后,该进程项才会从进程表里面删除。

|
这个是所谓的zombie(僵尸进程)
引用一段:
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程。 
  僵尸进程是指的父进程已经退出,而该进程dead之后没有进程接受,就成为僵尸进程.(zombie)进程

|
是当时父进程阻塞了,没有去处理子进程的退出信号,就成了僵死进程。

|
在SIGCHLD信号里进行wait操作,就可以避免僵死进程

|
kill 父进程

|
呵呵~~~,你这个多次也太多了吧,僵尸进程占用的资源极少,除了PCB未释放。

个人比较偏向于7楼的建议,在SIGCHLD信号里进行wait操作。

    
 
 

您可能感兴趣的文章:

  • 杀死子进程为何连父进程也被杀了
  • 关于杀死进程(高手请进)
  • linux中用killall命令杀死进程的时候会释放掉该进程所占有的内存吗?
  • 问一个shell问题?怎样杀死多个进程。
  • 如何杀死死进程!
  • Linux下请教一个父进程杀死子进程的问题.
  • 编程技术其它 iis7站长之家
  • 在程序中杀死进程的一个问题
  • 守护进程接收信号杀死或重启子进程 如何实现?
  • 如何用shell脚本杀死指定名称的进程?
  • 有没有这样的函数?(杀死进程)
  • 已知pid文件,实现杀死该进程的shell脚本怎么写?
  • 杀死一个进程是不是它所有的分配内存都释放了?
  • 关于子进程杀死父进程的问题
  • 这样杀死mail进程有错吗?应该是怎样?
  • redhad linux9.0 的命令行中如何终止(杀死)一个服务器进程?
  • 如何自动杀死所有死进程
  • 先确定进程是否存在,如在,杀死。怎样实现,谢谢(100分)?
  • 利用cron定期杀死某一进程--可以加分
  • sco unix下如何用c实现编程杀死某个名称的所有进程?
  • 请问如何用C语言编写查找并杀死僵死进程的程序?在线等。。。。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么杀死一个线程?
  • 怎样杀死在别的控制台上的用户?
  • linux下我想关闭ftp服务。应该杀死那个端口
  • 执行serlvet后杀死窗口的问题:-)
  • linux 杀死名字相同的kill语句
  • 怎样能杀死一个未挂起线程??
  • 杀死线程
  • 遇到奇怪的内存泄露问题,应用程序杀死内存无法释放!
  • 在linux下如何得到生成的线程的号,然后杀死它啊!而且是在程序中!请大家帮帮忙!
  • 小技巧 Oracle杀死死锁进程问题的解决
  • linux启动问题,另外在系统中杀死shell后,系统是怎么样一个维护的过程
  • 如何在某一进程占用CPU达到一定值时捕获它的PID并将它杀死???(急)
  • 如何断开一个URLConnection或者HTTPURLConnection不让超时连接发生?有人说把他们放到线程里面,那么如何强迫杀死该线程?
  • 两条Linux命令彻底杀死Oracle
  • 如何杀死指定的进程
  • 再次讨论一个杀死进程的linux命令(脚本)
  • 怎么这个驱动刚加载就说被杀死了?
  • 解析C#中用Process类杀死进程,执行命令的深入分析
  • 两条 Linux 命令彻底杀死 Oracle
  • 关于killall 杀死进程


  • 站内导航:


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

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

    浙ICP备11055608号-3