Ошибка процесса утечки файлов в JENKINS - программирование
Подтвердить что ты не робот

Ошибка процесса утечки файлов в JENKINS

Я получаю эту ошибку, когда я настроил задание на остановку и запуск сервера tomcat:

Обработать пропущенные файловые дескрипторы. Подробнее см. http://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build

Когда я googled, я получил рекомендуемое решение как set BUILD_ID=dontKillMe
Это точное решение?
Если да, где мне нужно установить BUILD_ID? Внутри ant/post build script?
Кто-нибудь может прояснить это?

4b9b3361

Ответ 1

Да, создание фальшивого BUILD_ID для процесса говорит Дженкинсу игнорировать этот процесс во время обнаружения порожденных процессов, поэтому этот процесс не будет убит после завершения задания.

Использование: введите BUILD_ID=dontKillMe перед вашей командой, например, в шаге Execute shell:

 BUILD_ID=dontKillMe nohup ./yourStartScript.sh &

Примечание: см. также nohup

Ответ 2

Добавьте эту строку в качестве аргумента JAVA_ARGS при запуске вашего сервера jenkins (я поместил мой на /etc/default/jenkins в свой Ubuntu)

-Dhudson.util.ProcessTree.disable=true

И вы закончили

Ответ 3

Вы вызываете команду от Jenkins, которая порождает другой процесс -
команда tomcat-start завершается, но его дочерний процесс все еще запущен
(это настоящий веб-сервер tomcat, который вы пытались запустить).

Дженкинс иногда идентифицирует эту ситуацию как возможную проблему,
но страница, о которой вы упомянули, также объясняет, как ее решить
(короче говоря: не начинайте кота с Дженкинса, если не знаете, как это сделать).

Ответ 4

По умолчанию Дженкинс убьет весь порожденный процесс при завершении сборки.

Чтобы переопределить это, вам нужно создать переменную среды BUILD_ID.

Перейти к Jenkins → Управление Jenkins → Настройка системы Теперь в разделе "Глобальные свойства" в разделе "Переменные среды" нажмите кнопку "Добавить", чтобы добавить новую переменную среды. Дайте Name= BUILD_ID и value = 'allow_to_run_as_daemon start_my_service' (без цитаты). Нажмите кнопку "Сохранить". И все готово.

Теперь процесс появления будет продолжать выполняться даже после завершения сборки.