Chinaunix首页 | 论坛 | 博客
  • 博客访问: 440677
  • 博文数量: 96
  • 博客积分: 4594
  • 博客等级: 上校
  • 技术积分: 1130
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 19:56
文章分类
文章存档

2012年(8)

2011年(49)

2010年(18)

2009年(21)

分类: LINUX

2010-12-09 16:48:18

如果父进程在子进程结束之前退出,则子进程将由init接管。init将会以父进程的身份对僵尸状态的子进程进行处理。
在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵尸进程。
 
总之僵尸进程是一个不占用任何系统资源地子进程,或者说白了僵尸进程是一个已经死亡的进程,如果僵尸进程过多可以使用重启来整体清除
阅读(2014) | 评论(1) | 转发(0) |
0

上一篇:CA-集群基础

下一篇:dd恢复和备份mbr

给主人留下些什么吧!~~

chinaunix网友2010-12-10 15:59:01

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com