[英]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.