파이프 라인 작업에서 백그라운드 프로세스 실행


15

Jenkins 선언 파이프 라인을 사용하여 백그라운드에서 Java 프로세스를 실행하는 방법을 찾고 있습니다. 아래는 코드 스 니펫입니다.

stage('Deploy'){
        steps{
            script{
                withEnv(['BUILD_ID=dontkill']) {
                    sh "nohup java -jar test-0.0.1-SNAPSHOT.war &"
                }
            }
        }
}

Jenkins의 ProcessTreeKiller를 이미 알고 있으며 모든 대답은 동일한 작업을 제안합니다. 단계 블록 내부에서 환경을 사용하여 운이 없었습니다.

젠킨스 버전 : 2.60.1

파이프 라인 플러그인 : 1.1.7

도움을 주시면 감사하겠습니다.


무슨 일이야? 에러 메시지? 침묵 실패?
B 계층

실행중인 Java 프로세스가 없습니다. 이것은 내 파이프 라인의 마지막 단계이므로 jenkins는 그것을 시작하고 다음 순간에 종료합니다.
Dharanidhar

슬레이브에서 직접 명령을 실행하면 어떻게됩니까? 에이전트 / 슬레이브 호스트에 로그인하고 작업의 작업 공간으로 이동하거나 ( /tmp예를 들어 war 파일에서 수동으로 복사 한 경우 등 ) 큰 따옴표 사이의 모든 것을 실행하십시오.
B Layer

또한 작업 공간이 정리되지 않은 경우 쉘 명령이 실행 한 디렉토리에서 nohup.out이라는 파일을 찾으십시오. 출력이 달리 경로 재 지정되지 않으면 nohup은 자동으로 해당 파일에 로그합니다.
B Layer

@BlairM 로그인하지 않은 비대화 형 쉘을 통해 jenkins 사용자와 함께 시도하면 동일한 스크립트가 정상적으로 실행됩니다. 큰 따옴표로 실행해도 차이가 없습니다. nohup.out이 있지만 0KB입니다.
Dharanidhar

답변:


16

동일한 문제에 직면하고 파이프 라인 프로젝트를 사용하는 사람 JENKINS_NODE_COOKIE대신에 설정하십시오 BUILD_ID.

시간 설정 낭비 말라 HUDSON_COOKIE, HUDSON_SERVER_COOKIE, JENKINS_COOKIE또는 JENKINS_SERVER_COOKIE. 그들 중 어느 것도 파이프 라인 프로젝트에서 작동하지 않습니다.

자세한 내용은 https://issues.jenkins-ci.org/browse/JENKINS-28182 를 참조하십시오.


1
우와, 저것은 야구의 일부입니다. 알아 둘만 한.
B 레이어
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.