情况1:父进程比子进程先结束。
当子进程结束时,检查父进程的状态,得知父进程已结束,则把父进程重置为init,由其帮忙收尸
情况2:子进程先结束
子进程先结束,发现父进程仍在运行,那么就向父进程发送信号SIGCHLD,
对于父进程,有3种策略:
1.选择忽略SIGCHLD,signal(SIGCHLD,SIG_IGN)
,那么收到信号后自动把子进程过继给init,让其帮忙收尸
2.调用wait给子进程收尸
3.什么也不做,那么子进程一直处于僵尸状态,直到父进程结束,此时把子进程过继给init,让其帮忙收尸。该办法不推荐
父子进程与僵尸进程
最新推荐文章于 2022-03-31 17:43:02 发布