Rpm scriptlet在curl命令中失败

时间:2016-02-18 09:34:17

标签: rpm

在Redhat 6和7上使用rpm postinstall scriptlet时,我遇到了一个非常奇怪的问题。

scriptlet需要对localhost url执行curl get请求。完整的请求是:

curl -sk https://127.0.0.1:8091/upgrade

如果我手动运行postinstall,它可以正常工作,但是作为部分或rpm,它会失败。在strace的帮助下,我发现失败是由于curl使用异步连接和轮询。轮询在运行rpm时返回POLLHUP。

这有一个更奇怪的转折。如果我在卷曲之前放一个睡眠1,那它就可以了!

毋庸置疑,我对这个“解决方案”不满意。向脚本添加睡眠通常是您无法理解问题的明确信号。

那里有谁最不知道这里发生了什么?当脚本由rpm运行时,它有什么不同?在卷曲之前睡觉怎么会有任何不同?非常感谢任何想法!

0 个答案:

没有答案