subprocess.call() 挂起。 "os.waitpid(self.pid, wait_flags)"

subprocess.call() Hangs. "os.waitpid(self.pid, wait_flags)"

我有一个奇怪的问题,我以前 运行 没有遇到过。我有一个脚本可以在给定时间段内提供 PDF 报告。到现在为止一切正常,但我已经进行了一些更新并将这些更改拉到服务器上。现在我的进程挂在 subprocess.call() 并且我不确定为什么。

我听说这在使用 PIPE 时可能是个问题,但我不是。我什至不确定如何调试这个问题。有什么想法吗?

subprocess.call(
                ['{}/orca.sh'.format(orca_dir),
                 'graph',
                 json.dumps(chart, cls=plotly.utils.PlotlyJSONEncoder),
                 '--width',
                 '1200',
                 '--scale',
                 '4',
                 '-o',
                 '/temp/{}'.format("a" + (count * "a"))]
)



 File "/root/**", line 97, in **
    '/temp/{}'.format("a" + (count * "a"))])
  File "/root/anaconda3/envs/**/lib/python3.7/subprocess.py", line 325, in call
    return p.wait(timeout=timeout)
  File "/root/anaconda3/envs/**/lib/python3.7/subprocess.py", line 990, in wait
    return self._wait(timeout=timeout)
  File "/root/anaconda3/envs/**/lib/python3.7/subprocess.py", line 1624, in _wait
    (pid, sts) = self._try_wait(0)
  File "/root/anaconda3/envs/**/lib/python3.7/subprocess.py", line 1582, in _try_wait
    (pid, sts) = os.waitpid(self.pid, wait_flags)

orca.sh 执行 Orca 的 AppImage 容器以使用给定参数执行其独立软件。还值得注意的是,我 运行 这个脚本在两台服务器上运行,但第二台是预更新的,仍然运行良好。 None 我所做的更改是针对如何进行此调用或它应该如何工作的。会不会是 AppImage 容器内的东西导致我挂起?

确定了问题。

我编译 Plotly 对象列表以生成这些图表的脚本未能正确生成第一个 Plotly 对象。所以第一个对象是 NoneType,但是 subprocess.call() 是用列表的每个成员调用的。不幸的是,由于 AppImage 没有收到图表数据,它似乎只是无限期挂起。