proc.communicate没有退出python子进程超时

时间:2017-09-12 09:34:21

标签: python

下面的脚本(调用python进程,调用waitfor cmd,超时为4秒)应该在 4秒之后结束。 但是,在 20秒超时之后,proc.communicate会停止。

为什么???

if __name__ == "__main__":
  proc_str = ["C:\\Program Files (x86)\\Anaconda3\\Python.exe",
                        "-c", "import 
  subprocess;subprocess.run('cmd /S /C waitfor g /t 200', shell=False, timeout=4)"]
  proc = subprocess.Popen(proc_str,
                            stdin=subprocess.PIPE,
                            stderr=subprocess.PIPE,
                            stdout=subprocess.PIPE,
                            shell=False,
                            universal_newlines=True)
  (proc_out, proc_err) = proc.communicate(timeout=20)
  if (proc.returncode == 0):
     pass

如果删除stdin / stderr / stdout参数,一切正常100%

0 个答案:

没有答案