У меня тоже время от времени возникает эта проблема. По какой-то причине сервер 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
Если бы у меня было много времени, я мог бы создать из него сценарий.