Apache-2.4

詹金斯在啟動期間掛起,沒有錯誤

  • June 23, 2016

所以,我已經嘗試對這個問題進行研究,但它已經到了我不再理解我正在閱讀的內容的地步(查看錯誤報告和郵件列表)。

我在我的伺服器上安裝了 Jenkins 和 Java,執行 CentOS 6.8。我剛開始服務時遇到了一些問題,但後來解決了這些問題。現在停止服務並啟動它只會給我一個漂亮的綠色 OK 消息,說明世界一切都很好。當我跑步時,service jenkins status我得到jenkins (pid 32178) is running.... 但是當我嘗試使用我的伺服器的 IP 地址和埠號(我將其更改為 8888)訪問我的伺服器時,它只是掛起,然後說該站點響應時間過長。

所以我查看了我的 jenkins 日誌,一切看起來都很好,甚至收到了這條消息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狀態LISTEN和java作為程序名。這使我相信系統正在偵聽該埠,但也許我錯了。我還發現了一個很長的郵件列表,其中 75% 的內容我都看不懂,但歸根結底是查看伺服器上是否啟用了多播,所以我跑了進去ifconfig eth0,得到UP BROADCAST RUNNING MULTICAST了一大塊文本,這導致我相信多播已啟用。

另外,我的 java 版本如果 openjdk 1.8.0_91,因為我知道 Jenkins 不喜歡似乎安裝在 CentOS 機器上的普通 java。

只是想知道詹金斯沒有執行並給出該錯誤還有什麼問題,以及我能做些什麼來解決這個問題。我在很大程度上是這類東西的新手,所以更詳細的資訊會有所幫助。

因此,當我設置 Jenkins 時,我遵循的說明沒有註意到在自己的伺服器上執行 Jenkins 和在也執行 Apache 的 Web 伺服器上執行 Jenkins 之間存在差異。

在確定確實存在差異後,我使用我的 jenkins 配置走了一條稍微不同的路線。

我在jenkins配置文件中添加--prefix=/jenkins了。JENKINS_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。

引用自:https://serverfault.com/questions/785464