在我的python脚本中,我尝试运行一些持久的下载过程,如下例所示,并且需要找到check_output启动的进程的PID:
out = subprocess.check_output(["rsync","-azh","file.log",...])
有可能吗?
答案 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中阅读更多内容。