개발

Jenkins PIPELINE Background Process

쩌비군 2020. 6. 1. 23:25
728x90

Jenkins 에서 PIPELINE 으로 작업 task 를 생성하여 프로세스를 실행하는 경우, 보통 Jenkins Job 이 끝나면 실행되던 Process 도 함께 종료가 된다.

 

 

이런 경우를 막기 위해서 “nohup 명령어 &” ㅇ를 이용하였는데, 최근 Jenkins 에서는 nohup 을 사용하여도 Background Process 로 계속 실행 되지 않는다.

 

Jenkins PIPELINE 에서 Background 로 계속 Process 를 실행 시키기 위해서는 JENKINS_NODE_COOKIE=dontKillMe 혹은 BUILD_ID=dontkillME 를 할당하여 Process 를 실행하면 된다.

 

stage('Run') {  
  steps {
    echo "Run" 
    sh('JENKINS_NODE_COOKIE=dontKillMe && nohup ./run.sh &')
  }
}

 

BUILD_ID 를 사용하는 것으로 매뉴얼이나 문서에는 되어 있지만, PIPELINE 에서는 DJENKINS_NODE_COOKIE 를 이용해야 Background Process 로 계속 실행이 된다.