Подтвердить что ты не робот

Дженкинс не запустится: не удалось прослушать порт 8080

Я использую Дженкинса, и со вчерашнего дня он перестает работать. Я посмотрел на Службу Windows, и она была остановлена ​​(каким-то образом). Я перезапустил его, но сразу же остановился.

Я просмотрел каталог, в котором работает служба (C:\Program Files\Jenkins), и открыл файл журнала, который называется jenkins.out.log. Вот что он говорит

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
4b9b3361

Ответ 1

Исправлено - для всех, кто может иметь эту проблему в будущем. Я использовал эту , которая сводится к

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

чтобы узнать, как узнать, какой процесс использовал порт 8080, а затем убил его в диспетчере задач, а затем перезапустил Jenkins, и все было хорошо (до сих пор!).

Ответ 2

Чтобы запустить Jenkins на контейнере WinStone (контейнер по умолчанию, связанный с войной Дженкинса), используйте следующую команду:

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

Кроме того, чтобы проверить, используется ли какой-либо порт любым приложением в Windows:

netstat -ano | find "9090"

Лучше запустить Дженкинса на Tomcat.

Ответ 3

Как и в трассировке стека ошибок, упоминается, что порт 8080 уже используется, проверьте, где используется порт 8080, или как альтернативное изменение порта Jenkins в Jenkins.xml на какой-либо другой доступный порт.

Ответ 4

У меня была аналогичная проблема, я попробовал обновить Jenkins, как он просил, но тогда служба Windows не запустится, что-то еще запущено на порту 8080. Оказалось, что это был экземпляр процесса java.exe после того, как я убил он в Диспетчере задач все начал работать красиво.

Ответ 5

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

Это действительно полезно, что я использовал, когда сталкивался с различными исключениями во время установки Jenkins.