Используя конвейер Jenkins, запуск файла jar в фоновом режиме с использованием nohup не запускает jar - PullRequest
0 голосов
/ 04 июля 2018

Я использую Jenkins версии 2.121.1 с конвейером на MacOS-HighSierra. Мой проект зависит от сервера входа в систему, который является артефактом Springboot и работает локально, который я хотел бы запустить перед сборкой. У меня есть сценарий оболочки для запуска сервера входа. Сценарий оболочки прекрасно работает из командной строки. Когда я запускаю то же самое в контексте Дженкинса, это терпит неудачу. Вот код в сценарии оболочки runloginserver:

nohup java -jar /absolute/path/login-module/login-api.jar >/dev/null 2>&1 &

И в моем Jenkinsfile я определил сцену следующим образом:

stage('Launch-login') {
  steps {
   script{
      withEnv(['JENKINS_NODE_COOKIE=dontkill']) {

        sh '/absolute/path/runloginserver '

       }           
   }
 }

}

Вывод на консоль не содержит ошибок. Nohup.out не генерируется. И сервер не был запущен

1 Ответ

0 голосов
/ 05 июля 2018

Возможно, вы работаете с Jenkins ProcessTree Killer . Это «функция» Дженкинса, которая убивает все фоновые процессы, запущенные во время сборки, когда сборка завершается, даже если процесс был запущен с nohup или иным образом отделен от своего родительского процесса. В ссылке есть инструкции о том, как отключить это поведение - его можно отключить глобально или только для определенного процесса.

...