评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-24 12:34
nevergone
因为linus是僵尸:-( 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-24 14:03
笨笨
@nevergone
呵呵 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-24 17:10
巫云
既然是父进程派生出来的,应该知道啊。 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-24 17:14
sxpropeht
打个比方,你跟你老婆生了孩子,谁来养活孩子?
在世界各国都是你们俩的义务
回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-24 21:38
笨笨
@sxpropeht
这个比方不恰当,这个新的进程已经不需要主进程养活了。另外,这个进程已经死了,还需要等待父进程来处理,而同时系统也不强制父进程必须处理。
这才是我像了解的。。 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-25 10:58
hstcscolor
@笨笨
一个父进程派生了一个子进程, 那么这个父进程有可能想知道,子进程的终止状态。如果父进程没有获取这个状态,那么子进程就变为zombie,直到父进程用wait来获取。如果没有这个状态,子进程直接结束。那么父进程就不会知道子进程的终止状态了。这个终止状态以用来判断子进程终止的原因,有些时候还是挺重要的。比如 ,是不是正常终止,是由什么信号终止的。。。详细说明可以参考unix高级环境编程 第八章进程控制,第六节 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-25 15:23
巫云
我想笨笨想问的是为什么父进程不被强制要求处理,如果不处理有什么不好的后果。 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-25 16:47
笨笨
@hstcscolor
谢谢你的详细解释。
不过我想父进程除了使用wait之外就没有办法知道子进程的状态了吗?
(我对linux不是很熟悉) 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-25 16:49
笨笨
@巫云
我基本上是这个意思;既然有僵尸进程带来的缺点,为什么不强制设置必须让每个主进程等待。。。难道是为了避免父进程先退出的尴尬?貌似渐渐有些能理解了。。。 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?[未登录]
2011-05-25 18:22
vincent
我觉得还有一个有意思的语意
既然是从你这fork的,你必然关注啊
不然的话就没从你这fork的意义了 回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-05-26 19:28
易宝@byhh
wait() 获取子进程的退出状态。若无,则阻塞。
我觉得设计的挺好的。
回复 更多评论
# re: Linux为什么要设计一个“僵尸进程”状态?
2011-12-06 09:51
Onway
其实可以使用sigaction捕捉SIGCHLD信号,并设置flag标志使其不产生僵死子进程的。
如果强制父进程必须了解子进程的状态,我觉得这才不好,正如你所说的,有的父进程并不关心它的子进程。而且父进程先结束的话,子进程是会被init进程领养的。
我觉得不是因为父进程fork了一个子进程就必须了解它。
了解与不了解,由父进程自己决定,这不是很好么? 回复 更多评论