设想如下情况:现有进程A,fork产生子进程B,子进程B调用exit(0),这时B会向父进程A发送SIGCHLD信号,父进程A选择忽略掉这个信号,进程B变为僵死进程。
那么如果此时A正常结束了,B就应该会转交成为init进程的子进程,此时会发生什么?B会不会重新发送SIGCHLD信号给init呢?如果不会的话,B最后将如何结束?
设想如下情况:现有进程A,fork产生子进程B,子进程B调用exit(0),这时B会向父进程A发送SIGCHLD信号,父进程A选择忽略掉这个信号,进程B变为僵死进程。
那么如果此时A正常结束了,B就应该会转交成为init进程的子进程,此时会发生什么?B会不会重新发送SIGCHLD信号给init呢?如果不会的话,B最后将如何结束?
1 回答993 阅读✓ 已解决
1 回答712 阅读✓ 已解决
3 回答729 阅读✓ 已解决
1 回答1.5k 阅读
1 回答847 阅读✓ 已解决
2 回答626 阅读✓ 已解决
1 回答874 阅读
B 不会再发送任何信号,这种僵尸进程最终被 init 进程(pid=1)自动回收。
请参考
https://en.wikipedia.org/wiki...