pythons子进程挂起(不使用PIPE)

时间:2018-08-16 07:12:58

标签: python-3.x bash process subprocess

我正在循环调用多个bash脚本:

import subprocess

for script in scripts:
    cmd = './{}'.format(script)
    subprocess.call(cmd, shell=True)

我的问题是一些脚本会挂起,我不明白为什么。 script执行完毕后,子进程似乎正在等待。请注意,我没有使用stdout = subprocess.PIPE等,该文档特别建议可能会导致缓冲区溢出并导致相关问题。

有什么建议吗?我可以在此过程中设置timeout,但不希望诉诸此措施。

当sigterm时,python输出为:

File "/home/ubuntu/anaconda3/lib/python3.6/subprocess.py", line 269, in call
    return p.wait(timeout=timeout)
  File "/home/ubuntu/anaconda3/lib/python3.6/subprocess.py", line 1457, in wait
    (pid, sts) = self._try_wait(0)
  File "/home/ubuntu/anaconda3/lib/python3.6/subprocess.py", line 1404, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)

0 个答案:

没有答案