如何使用子进程check_output获取子进程的PID

时间:2017-05-12 02:49:33

标签: python subprocess pid

在我的python脚本中,我尝试运行一些持久的下载过程,如下例所示,并且需要找到check_output启动的进程的PID:

out = subprocess.check_output(["rsync","-azh","file.log",...])

有可能吗?

1 个答案:

答案 0 :(得分:2)

您可以使用Popen来运行您的子流程:

import subprocess
proc = subprocess.Popen(["rsync","-azh","file.log",...], stdout=subprocess.PIPE)
out = proc.communicate()[0]
pid = proc.pid

通常,Popen对象为您提供更好的控制和更多的子进程信息,但需要更多设置。 (但不多。)您可以在official documentation中阅读更多内容。