Я ищу способ запуска Java-процесса в фоновом режиме, используя декларативный конвейер Jenkins. Ниже приведен фрагмент кода
stage('Deploy'){
steps{
script{
withEnv(['BUILD_ID=dontkill']) {
sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
}
}
}
}
Уже известно о ProcessTreeKiller о Jenkins и каждый ответ предлагает сделать то же самое. Я попытался использовать среду внутри блока шагов без удачи.
Дженкинс версия: 2.60.1
Трубопроводный плагин: 1.1.7
Любая помощь очень ценится.
Что происходит? Сообщение об ошибке? Тихая неудача?
—
B Layer
У меня нет запущенного процесса Java. Это последний этап в моем конвейере, поэтому я предполагаю, что Дженкинс запускает его и завершает его в следующий момент.
—
Дхаранидхар
Что происходит, когда вы запускаете команду непосредственно на подчиненном устройстве? Войдите в агент / подчиненный хост, перейдите в рабочую область задания (или, если оно было очищено, скопируйте вручную в файл war где-нибудь ...
—
Слой
/tmp
например) и запустите все в двойных кавычках.
Кроме того, если рабочая область не была удалена, найдите файл с именем nohup.out в любом каталоге, в котором будет выполняться команда оболочки. nohup автоматически регистрируется в таком файле, когда выходные данные не перенаправляются иначе.
—
Слой
@BlairM тот же скрипт работает нормально, когда я пробую его с пользователем jenkins через неинтерактивную оболочку без логина. Запуск в двойных кавычках не имеет значения. nohup.out присутствует, но это 0 КБ.
—
Дхаранидхар