设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
进程结束后为什么要进入僵尸状态?
返回列表
查看:
776
|
回复:
4
进程结束后为什么要进入僵尸状态?
[复制链接]
icoming
icoming
当前离线
积分
542
IP卡
狗仔卡
发表于 2004-9-23 13:48:46
|
显示全部楼层
|
阅读模式
进程结束后为什么要进入僵尸状态?
这样做有什么好处吗?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
dongp
dongp
当前离线
积分
289
IP卡
狗仔卡
发表于 2004-9-23 16:14:25
|
显示全部楼层
因为父进程可能要取得子进程的退出状态等信息
回复
支持
反对
使用道具
举报
显身卡
JBug
JBug
当前离线
积分
358
IP卡
狗仔卡
发表于 2004-9-24 09:59:58
|
显示全部楼层
并不是所有的进程运行完了都进入僵尸状态吧, 我记得只有在父进程没有waitpid, 或父进程死掉而子进程没有执行完,这时子进程进入僵尸状态,如果父进程不在了, 系统会将子进程的父进程设为init进程, 由init进程回收子进程的资源,
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2004-9-24 11:16:12
|
显示全部楼层
最初由 JBug 发表
并不是所有的进程运行完了都进入僵尸状态吧,
这个回答并不准确。任何一个子进程(init除外)在exit()之后,并非马上就消失掉,而是留下一个称为僵尸进程(Zombie)的数据结构,等待父进程处理。这是每个子进程都在结束时都要经过的阶段。如果子进程在exit()之后,父进程没有来得及处理,这时用ps命令就能看到子进程的状态是“Z”。如果父进程能及时处理,可能用ps命令就来不及看到子进程的僵尸状态,但这并不等于子进程不经过僵尸状态。
如果父进程在子进程结束之前退出,则子进程将由init接管。init将会以父进程的身份对僵尸状态的子进程进行处理。
回复
支持
反对
使用道具
举报
显身卡
icoming
icoming
当前离线
积分
542
IP卡
狗仔卡
楼主
|
发表于 2004-9-25 23:28:49
|
显示全部楼层
3x
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表