Jenkins 在启动过程中挂起,没有错误

Jenkins 在启动过程中挂起,没有错误

因此,我尝试研究这个问题,但已经到了我不再理解我所读内容的地步(查看错误报告和邮件列表)。

我在运行 CentOS 6.8 的服务器上安装了 Jenkins 和 Java。最初启动服务时遇到了一些问题,但后来这些问题都解决了。现在停止服务并启动它只会给我一个漂亮的绿色 OK 消息,表明一切正常。当我运行时,service jenkins status我得到了jenkins (pid 32178) is running...。但是当我尝试使用我的服务器的 IP 地址和端口号(我将其更改为 8888)访问我的服务器时,它只是挂起,然后说网站响应时间太长。

因此我查看了我的詹金斯日志,一切看起来都很好,甚至收到了这条消息INFO: Jenkins is fully up and running,但就在下面我得到了:

WARNING: Prober().run() exception
java.io.IOException: Operation not permitted
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:693)
    at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1537)
    at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

Jun 22, 2016 12:08:59 AM javax.jmdns.impl.JmDNSImpl __recover
WARNING: RECOVERING
Jun 22, 2016 12:08:59 AM javax.jmdns.impl.tasks.state.DNSStateTask run
WARNING: Canceler().run() exception
java.io.IOException: Operation not permitted
    at java.net.PlainDatagramSocketImpl.send(Native Method)
    at java.net.DatagramSocket.send(DatagramSocket.java:693)
    at javax.jmdns.impl.JmDNSImpl.send(JmDNSImpl.java:1537)
    at javax.jmdns.impl.tasks.state.DNSStateTask.run(DNSStateTask.java:131)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

所以我四处寻找解决方案,并找到了几个选项,首先是确保我的服务器正在监听我选择的端口 (8888)。所以我运行netstat -tuplen并看到:::8888状态为LISTENjava 作为程序名称。这让我相信系统正在监听该端口,但也许我错了。我还发现了一个很长的邮件列表,我不明白其中的 75%,但最终还是要查看服务器上是否启用了多播,所以我运行ifconfig eth0并得到了UP BROADCAST RUNNING MULTICAST一大段文本,这让我相信多播已启用。

另外,我的 java 版本是 openjdk 1.8.0_91,因为我知道 Jenkins 不喜欢似乎安装在 CentOS 机器上的普通 java。

我只是想知道 Jenkins 无法运行并给出该错误还可能是什么问题,以及我可以做些什么来解决这个问题。我在很大程度上是这类事情的新手,因此更详细的信息会很有帮助。

答案1

因此,当我设置 Jenkins 时,我所遵循的说明并未指出在自己的服务器上运行 Jenkins 与在运行 Apache 的 Web 服务器上运行 Jenkins 之间存在差异。

在弄清楚确实存在差异之后,我对詹金斯配置采取了略有不同的路线。

我在 jenkins 配置文件中添加了--prefix=/jenkinsJENKINS_ARGS我还将 jenkins 监听的端口更改为 8081,并将 jenkins 监听的 IP 地址从 更改0.0.0.0127.0.0.1

我接着补充道:

ProxyPass         /jenkins  http://localhost:8081/jenkins nocanon
ProxyPassReverse  /jenkins  http://localhost:8081/jenkins
ProxyRequests     Off
AllowEncodedSlashes NoDecode

<Proxy http://localhost:8081/jenkins*>
  Order deny,allow
  Allow from all
</Proxy>

到我的 Apache 配置文件。这解决了我的问题并允许我访问 Jenkins。

相关内容