Python 如何一次性终止某个子进程下面的所有子进程?

讨论 天天修改
Lv2 初级炼丹师
发布在 Python编程   1144   0
讨论 天天修改   1144   0

    比如主进程 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 掉,而且可能不容易察觉到,毕竟第三方模块不是自己写的。

    版权声明:作者保留权利,不代表意本站立场。如需转载请联系本站以及作者。

    参与讨论

    回复《 Python 如何一次性终止某个子进程下面的所有子进程?

    EditorJs 编辑器

    沙发,很寂寞~
    反馈
    to-top--btn