【发布时间】:2014-06-23 16:35:05
【问题描述】:
我需要在后台运行一个 bash 命令,但稍后需要 kill(os.kill()) 它。我还想确保命令运行我有这个以确保命令运行。
if subprocess.Popen("tcpdump -i eth0 -XX -w /tmp/tmp.cap &", shell=True).wait() == 0:
我不确定如何更改此设置,因此我可以使用 Popen.pid 获取 pid,同时仍然能够检查执行是否成功。 任何帮助,将不胜感激。 谢谢。
【问题讨论】:
-
你可以使用变量
p = Popen(...),p.kill()——杀死,returncode = p.wait()——等待完成。顺便说一句,这里不需要shell=True:在最后删除shell=True和&并使用p = Popen(shlex.split(cmd)) -
是的,我不确定我是否需要 shell=True 或 & 但它适用于他们,我会尝试你的建议,谢谢你的时间。
标签: python if-statement subprocess popen pid