关于subprocess运行中主程序被强制退出

程序在运行时,主程序被强退, subprocess开启的子进程依然存在。
注意,这里的强退,指的是kill -9级别. 关于信号级别看这里https://blog.csdn.net/taoxicun/article/details/123388455
温和退出比如ctrl C ,程序会自动关闭子进程,高级别的退出不会关闭。

使用 subprocess.run()函数参数: preexec_fn=os.setsid可以将设置子进程进程组id,然后在子进程中记录进程组id。
根据进程组id可自行选择关闭方法。
我直接使用了os.killpg()

posted @ 2022-10-19 17:02  道友请留步W  阅读(172)  评论(0编辑  收藏  举报