【发布时间】:2016-08-26 23:47:38
【问题描述】:
所以,我要做的是从我在 shell 中执行的 python 脚本执行一个程序。我已经阅读了其他问题,所以我可以这样做:
def bash(cmd):
subprocess.Popen(cmd, shell=True, executable='/bin/bash')
bash('./my/file')
现在第一个问题是我经常想从 shell 中终止程序。通常,如果我从终端执行“./my/file”,我可以用 ctrl+c 停止它。但是使用子进程以某种方式在后台运行它,我只能通过命令“top”杀死它,并在 bash 中通过 pid 杀死它。但是该程序生成大量进程的速度如此之快,以至于我无法以合理的方式以这种方式杀死它。
另外,我想做的第二件事是等待程序完成运行,然后再执行更多我的 python 脚本。我试过设置...
process=subprocess.Popen(cmd, shell=True, executable='/bin/bash')
process.wait()
但这实际上在程序启动后几乎立即停止。
我可以单独执行脚本,但我看不到在不创建第三个脚本的情况下使用程序结果的方法,我必须在原始 python 脚本之后自己运行然后程序完成。 有什么建议吗?
【问题讨论】:
标签: python bash shell executable