waitpid -- 1




概念又称僵尸进程,在子进程退出时,会将子进程的有关信息发送给父进程,让其父进程对其进行善后处理(如释放他仍占用的资源),如果他的父进程没有对 SIGCHLD 做出响应或忽略该信号或调用 waitpid 等待子进程结束,则子进程无法正常结束而成为僵死进程,即使是 root 身份调用 kill -9 命令也不能杀死僵死进程 将死进程通过 ps 命令查看其标志为 Z 避免产生僵死进程的方法1、waitpid子进程死后,会发送 SIGCHLD 信号给父进程,父进程收到此信号后会执行 waitpid 函数为子进程收尸2、处理 SIGCHLD 信号父进程可以对 SIGCHLD 信号进行响应,在处理函数中执行默认的处理或显示忽略该信号,则系统会自动释放子进程资源而避免使子进程成为僵死进程3、杀死父进程由于父进程死后,子进程以及僵死进程会成为孤儿进程,会被过继给守护进程(pid为1的init进程),init进程会负责清理僵死进程4、fork 两次在建立子进程时,使用2次fork,让所建立的子进程成为父进程的孙子进程,而实际中的子进程则随即推出,和第三条相同,由于孙子进程的
#技术帖    #linux    #unix    #apue   



京ICP备15018585号