Перезапуск Гудзона в Windows - PullRequest
       13

Перезапуск Гудзона в Windows

17 голосов
/ 21 сентября 2010

У меня была проблема с Хадсоном в Windows.

Всякий раз, когда я обновляю Hudson или плагин, я получаю возможность перезапускаться, когда не выполняются никакие задания.
Если я нажму эту кнопку, Хадсон зависнет и не перезапустится. Я попытался перезапустить службу Hudson, но это не помогло, поэтому пришлось перезагрузить окно, чтобы вернуть Hudson в оперативный режим.

Я только что обновился до последней версии, но не нажал кнопку перезагрузки, и теперь он исчез.

Есть ли правильный способ перезапустить Hudson на Windows?

Приветствия

Tom

Ответы [ 3 ]

13 голосов
/ 21 сентября 2010

У меня тоже время от времени возникает эта проблема. По какой-то причине сервер Hudson не отключается полностью, и сервер, который запускается, не может использовать порт. Чтобы исправить эту проблему, я запускаю `netstat -n -o '. Таким образом, я могу узнать идентификатор процесса, который содержит порт, и уничтожить это приложение через диспетчер задач. Теперь я могу перезапустить службу, и Хадсон в порядке.

Последние несколько недель у меня была похожая проблема. В описании сказано, что оно перезапускает приложение, когда не запущено ни одного процесса. Я пропустил одно задание, которое удерживалось в очереди на сборку и из-за неправильной конфигурации никогда не собиралось, поэтому не позволяло Hudson перезапустить.

После того, как все ваши задания завершены и ваш сервер не перезагружается. Просто зайдите на страницу перезагрузки снова http://server:port/restart и попробуйте перезагрузить снова. Если это не работает, остановите службу и запустите ее снова.


UPDATE:

Поскольку я устал от физического входа на сервер Hudson / Jenkins, теперь я использую следующие команды для удаленного запуска kill. Эти команды предполагают, что вы запускаете службу с выделенным пользователем (например, JenkinsUser). Если другой процесс работает с теми же учетными данными, что и служба, и может запустить java.exe, вам нужно запустить netstat, который нужно выполнить локально на сервере Jenkins или с помощью rexec (это не было для меня вариантом).

:: get the pid of jenkins java.exe
tasklist /S %JENKINSSERVER% /FI "IMAGENAME eq java.exe" /FI "USERNAME eq %DOMAIN\USERNAME%"

:: terminate process use pid from previous command (instead of 1234)
taskkill /S %JENKINSSERVER% /F /T /PID 1234

:: stop the Jenkins service (just in case the service is hanging)
sc \\%JENKINSSERVER% stop Jenkins

:: start the Jenkins service again
sc \\%JENKINSSERVER% start Jenkins

Если бы у меня было много времени, я мог бы создать из него сценарий.

1 голос
/ 17 февраля 2012

Если вы установили Jenkins на сервере TomCat, одно из альтернативных решений - просто перезапустить службу Apache TomCat.

1 голос
/ 21 сентября 2010

Если подчиненный узел имеет slave.jar, используемый в качестве службы Windows, эта служба определяется как «Автоматически».
Это означает, что она будет пытаться периодически связываться с ведущим, если соединение было разорвано.

Вы не должны нажимать на что-либо на стороне сервера (в определении узла), чтобы перезапустить указанный узел: он должен снова автоматически подключиться.

...