程序在运行时,主程序被强退, subprocess开启的子进程依然存在。
注意,这里的强退,指的是kill -9级别. 关于信号级别看这里https://blog.csdn.net/taoxicun/article/details/123388455。
温和退出比如ctrl C ,程序会自动关闭子进程,高级别的退出不会关闭。
使用 subprocess.run()函数参数: preexec_fn=os.setsid
可以将设置子进程进程组id,然后在子进程中记录进程组id。
根据进程组id可自行选择关闭方法。
我直接使用了os.killpg()