僵尸已经死了,所以您无法杀死它。要清理僵尸,必须等待其父级等待,因此杀死父级应该可以消除僵尸。(父对象死后,僵尸将被pid 1继承,而pid 1将等待该僵尸并清除其在进程表中的条目。)如果守护程序正在生成成为僵尸的子代,则您有一个bug。您的守护程序应注意其子项何时死亡以及wait
在其上死亡,以确定其退出状态。
您如何向僵尸程序的父进程的每个进程发送信号的示例(请注意,这非常粗糙,可能会杀死您不想要的进程。我不建议您使用这种大铁锤):
# Don't do this. Incredibly risky sledge hammer!
kill $(ps -A -ostat,ppid | awk '/[zZ]/ && !a[$2]++ {print $2}')