使用OS命令行调用过程中由于非阻塞式执行导致结果不可控
Dunnnnn opened this issue · comments
Dunnnnn commented
Dunnnnn commented
原先的执行方式为os.system("gnome-terminal -e 'bash -c "command; exec bash"'")
这种方式新建一个命令行窗口执行,新建一个进程,且python程序中无法对其控制。
修改为使用
p_temp = subprocess.Popen('command',shell=True)
p_temp.wait()
的方式调用。
使用的控制方法有:
Poepn.wait() 阻塞式,当上一条命令完成之后继续向下执行;
Popen.poll()判断是否执行完毕;
Popen.kill()强制结束子进程。
实现对子进程的控制