我正在使用以下命令运行 shell 命令(创建子进程):
cmd = "ls"
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, universal_newlines=True)
然后,我想在它完成后得到它的返回码。我应该使用wait()
or poll()
?在我看来,这wait()
等于是一个poll()
封闭在忙碌的等待中。就像是:
while process.poll() == None:
time.sleep(0.5)
我读到如果缓冲区已满,wait()
可能会产生死锁。像上面那样使用也会产生死锁吗?如果这是真的,我应该用什么来解决问题?现在,我只
在对 subprocess 感兴趣时使用。stdout/stderr
process.poll()
process.comunicate()
process.comunicate()
stdout/stderr
提前致谢。