僵死进程被init接受后会如何表现?

设想如下情况:现有进程A,fork产生子进程B,子进程B调用exit(0),这时B会向父进程A发送SIGCHLD信号,父进程A选择忽略掉这个信号,进程B变为僵死进程。

那么如果此时A正常结束了,B就应该会转交成为init进程的子进程,此时会发生什么?B会不会重新发送SIGCHLD信号给init呢?如果不会的话,B最后将如何结束?

阅读 2.3k
1 个回答

B 不会再发送任何信号,这种僵尸进程最终被 init 进程(pid=1)自动回收。

请参考

When a process loses its parent, init becomes its new parent. init periodically executes the wait system call to reap any zombies with init as parent.

https://en.wikipedia.org/wiki...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题