什么是kill
到底是怎么做的?
我有一个父进程,它正在一个接一个地创建 100 个(作为示例)子进程。在任何孩子的工作结束时,我都会杀死孩子kill(pid_of_child, SIGKILL)
我看不到ps
输出。但是如果父进程出现问题并且我退出父进程exit(1)
(此时只有 1 个孩子在那里 - 我可以办理入住ps
),那时我看到了很多<defunct>
其过程ppid
is pid
父进程的。
这怎么可能?做过kill
不完全杀死子进程吗?
kill
不杀anything。它向目标进程发送信号。SIGKILL
只是一个信号。现在,标准动作为SIGKILL
——事实上,自从SIGKILL
进程不能处理或忽略——就是退出,这是真的。
“”进程是一个尚未运行的子进程reaped,这意味着父母还没有打电话wait()
检索子项的退出状态。直到家长打来电话wait()
,失效的(或“僵尸”)进程将徘徊。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)