繁体   English   中英

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 容器以使用给定参数执行其独立软件。 还值得注意的是,我在两台服务器上运行此脚本,但第二台是预更新的,仍然可以正常工作。 我所做的任何更改都没有改变这个调用的方式或它应该如何工作。 会不会是 AppImage 容器中的某些东西导致我挂起?

确定了问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM