sebuaa2019 / Team108

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

使用OS命令行调用过程中由于非阻塞式执行导致结果不可控

Dunnnnn opened this issue · comments

原先的执行方式为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()强制结束子进程。
实现对子进程的控制