发信人: hellguard (小四), 信区: Unix
标 题: Re: 出现很多root运行的<defunct>是什么意思?
发信站: BBS 水木清华站 (Fri Sep 28 21:55:21 2001)
父进程没有终止,却也没有捕捉sigchld信号
Q: Unix/Linux编程中所谓"僵尸进程"指什么,什么情况下会产生僵尸进程,如何杀
掉僵尸进程。
A: 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之
前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽
略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9
也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然
存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵
尸进程。
标 题: Re: 出现很多root运行的<defunct>是什么意思?
发信站: BBS 水木清华站 (Fri Sep 28 21:55:21 2001)
父进程没有终止,却也没有捕捉sigchld信号
Q: Unix/Linux编程中所谓"僵尸进程"指什么,什么情况下会产生僵尸进程,如何杀
掉僵尸进程。
A: 在fork()/execve()过程中,假设子进程结束时父进程仍存在,而父进程fork()之
前既没安装SIGCHLD信号处理函数调用waitpid()等待子进程结束,又没有显式忽
略该信号,则子进程成为僵尸进程,无法正常结束,此时即使是root身份kill -9
也不能杀死僵尸进程。补救办法是杀死僵尸进程的父进程(僵尸进程的父进程必然
存在),僵尸进程成为"孤儿进程",过继给1号进程init,init始终会负责清理僵
尸进程。