比如主进程 m 创建了子进程 p 子进程 p 又创建了子进程 p1 、p2 、p3 、p4,甚至 p1 下面又有创建别的子进程。
在主进程 m 处用 p.kill()或者 p.terminate()可以终止子进程 p,但是 p 创建的子进程 p1,p2,p3,p4 还会继续保持运行。
希望一次性把子进程 p 以及子进程 p 下面的子进程全部结束,并且主进程 m 继续保持运行。有办法吗?
ps:■■■■■■■■■■■■■■■■■■ 官方帮助中有说到关于 terminate()的注意事项:进程的后代进程将不会被终止 —— 它们将简单地变成孤立的。
这样的话感觉 kill()或 terminate()有点坑,比如你的某个子进程使用到了某个第三方模块,该模块里面也用到了多进程,而你如果直接 kill 掉该子进程,但子进程下面创建的子进程却并不能 kill 掉,而且可能不容易察觉到,毕竟第三方模块不是自己写的。