【发布时间】:2017-10-11 05:30:09
【问题描述】:
在我的 python 脚本中,我试图运行一些持久的下载过程,如下例所示,并且需要找到由 check_output 启动的进程的 PID:
out = subprocess.check_output(["rsync","-azh","file.log",...])
有可能吗?
【问题讨论】:
标签: python subprocess pid
在我的 python 脚本中,我试图运行一些持久的下载过程,如下例所示,并且需要找到由 check_output 启动的进程的 PID:
out = subprocess.check_output(["rsync","-azh","file.log",...])
有可能吗?
【问题讨论】:
标签: python subprocess pid
您可以改用Popen 运行您的子进程:
import subprocess
proc = subprocess.Popen(["rsync","-azh","file.log",...], stdout=subprocess.PIPE)
out = proc.communicate()[0]
pid = proc.pid
一般来说,Popen 对象为您提供了更好的控制和子进程的更多信息,但需要更多的设置。 (虽然不多。)您可以在official documentation 中阅读更多内容。
【讨论】: