Ответ 1
У меня тоже есть эта проблема. По какой-то причине сервер Hudson не отключается полностью, а сервер, который запускается, не может использовать порт. Чтобы исправить эту проблему, я запускаю `netstat -n -o '. Таким образом, я могу узнать идентификатор процесса, который содержит порт, и убить это приложение через taskmanager. Теперь я могу перезапустить службу, и Хадсон подходит хорошо.
В течение последних нескольких недель у меня была аналогичная проблема. В описании говорится, что он перезапускает приложение, когда процессы не запущены. Я пропустил одно задание, которое было в очереди на сборку, и из-за неправильной конфигурации никогда не создавалось, поэтому предотвращение перезапуска Хадсона.
После завершения всех ваших заданий и перезагрузки сервера. Просто запустите страницу перезагрузки 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
Если мне нужно много времени, я могу создать script.