2012-05-17 25 views
18

Tôi đang sử dụng Jenkins và kể từ hôm qua nó đã ngừng hoạt động. Tôi đã xem Dịch vụ Windows và nó đã bị dừng lại (bằng cách nào đó). Tôi khởi động lại nó nhưng nó dừng lại ngay sau đó.Jenkins sẽ không bắt đầu: Không thể nghe trên cổng 8080

Tôi đã tìm trong thư mục nơi dịch vụ đang chạy từ (C: \ Program Files \ Jenkins) và mở tệp nhật ký trong đó có tên là jenkins.out.log. Đây là những gì nó nói

Running from: C:\Program Files\Jenkins\jenkins.war 
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME") 
[Winstone 2012/05/17 10:14:42] - Beginning extraction from war file 
Jenkins home directory: C:\Program Files\Jenkins found at: EnvVars.masterEnvVars.get("JENKINS_HOME") 
[Winstone 2012/05/17 10:14:44] - Winstone shutdown successfully 
[Winstone 2012/05/17 10:14:44] - Container startup failed 
java.io.IOException: Failed to start a listener: winstone.HttpListener 
    at winstone.Launcher.spawnListener(Launcher.java:250) 
    at winstone.Launcher.<init>(Launcher.java:202) 
    at winstone.Launcher.main(Launcher.java:398) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at Main._main(Main.java:268) 
    at Main.main(Main.java:96) 
Caused by: java.io.IOException: Failed to listen on port 8080 
    at winstone.HttpListener.getServerSocket(HttpListener.java:117) 
    at winstone.HttpListener.start(HttpListener.java:70) 
    at winstone.Launcher.spawnListener(Launcher.java:241) 
    ... 8 more 
Caused by: java.net.BindException: Address already in use: JVM_Bind 
    at java.net.PlainSocketImpl.socketBind(Native Method) 
    at java.net.PlainSocketImpl.bind(Unknown Source) 
    at java.net.ServerSocket.bind(Unknown Source) 
    at java.net.ServerSocket.<init>(Unknown Source) 
    at java.net.ServerSocket.<init>(Unknown Source) 
    at winstone.HttpListener.getServerSocket(HttpListener.java:112) 
    ... 10 more 
+2

Vì nhật ký lỗi xác nhận rằng cổng 8080 đã bị ràng buộc với một quá trình JVM khác - bạn đã thử 'telnet' đến địa chỉ này và xem câu trả lời là gì? – Filburt

+1

Tôi có thể làm như thế nào? –

Trả lời

28

Cố định - cho bất kỳ ai khác có thể gặp vấn đề này trong tương lai. Tôi đã từng Techrepublic article này, mà nắm để

netstat -a -n -o | grep "8080" 

để tìm hiểu làm thế nào để tìm ra các quá trình được sử dụng cổng 8080 và sau đó giết nó trong Task Manager và sau đó khởi động lại Jenkins và tất cả là tốt (cho đến nay!).

+1

+1 ... hoặc theo cách này. – Filburt

+2

Có thể xảy ra sau khi cố gắng khởi động lại Jenkins, nơi quá trình Java không được đóng đúng cách ... Hãy thử ** giết quá trình Java ** theo cách thủ công, rồi khởi động lại dịch vụ Jenkins. –

3

Như trong ngăn xếp lỗi Dấu vết được đề cập đến cổng 8080 đã được sử dụng, kiểm tra nơi cổng 8080 được sử dụng hoặc thay thế thay thế cổng Jenkins trong Jenkins.xml thành một số cổng khả dụng khác.

16

Để bắt đầu Jenkins trên Winstone container (mặc định chứa kèm với Jenkins chiến tranh) sử dụng lệnh sau:

java -jar jenkins.war --ajp13Port=-1 --httpPort=9090

Ngoài ra, để kiểm tra xem một cổng nào đó đang được sử dụng bởi bất kỳ sử dụng ứng dụng trong Windows:

netstat -ano | find "9090"

Tốt hơn là chạy Jenkins trên Tomcat.

+1

Cảm ơn bạn! "java -jar jenkins.war --ajp13Port = -1 --httpPort = 9090" -> Lệnh này đã lưu ngày của tôi –

0

Tôi đã gặp vấn đề tương tự, cố gắng nâng cấp Jenkins như đã hỏi, nhưng sau đó dịch vụ Windows sẽ không khởi động, một thứ khác đang chạy trên cổng 8080. Hóa ra là một ví dụ về quy trình java.exe sau khi tôi đã giết nó trong Task Manager, tất cả bắt đầu hoạt động tốt.

0
java -jar jenkins.war --ajp13Port=-1 --httpPort=9090 

Điều này thực sự hữu ích, mà tôi sử dụng khi tôi đã phải đối mặt với trường hợp ngoại lệ khác nhau trong khi cài đặt Jenkins.

Các vấn đề liên quan