詹金斯在啟動期間掛起,沒有錯誤
所以,我已經嘗試對這個問題進行研究,但它已經到了我不再理解我正在閱讀的內容的地步(查看錯誤報告和郵件列表)。
我在我的伺服器上安裝了 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.0
為127.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。