1. Issue
Jenkins Pipeline을 사용해 실행 스크립트(sh)를 사용해 jar 파일을 백그라운드에서 실행시키는 도중 Job이 종료되면 실행시켰던 프로세스가 삭제됨
2. Problem
Jenkins 파이프라인에서 실행되는 모든 작업은 Job 내에서만 실행된다. 파이프라인에서 정의된 step을 차례대로 실행하고, 파이프라인이 종료되면 Jenkins는 해당 실행 환경을 정리하고 종료하게 된다.(하위 프로세스도 함께)
반응형
3. Solution
JENKINS_NODE_COOKIE 환경 변수를 사용해 프로세스를 종료하지 않도록 요청한다.
pipeline {
agent any
tools {
maven 'maven-3.9.6'
jdk 'JDK8'
}
stages {
stage('Checkout') {
// 소스 체크아웃 스클입트
}
stage('Build') {
// maven 패키징 스크립트
}
stage('RESTART') {
steps {
script {
try {
sh 'JENKINS_NODE_COOKIE=dontKillMe && /home/jex30poc/POC40_HOME/PT/bin/startup.sh'
} catch (Exception e) {
echo ';오류 발생: ${e.message}'
currentBuild.result = 'FAILURE'
}
}
}
}
}
post { // 파이프라인 종료된 후 작업
cleanup {
cleanWs()
}
}
}
- JENKINS_NODE_COOKIE=dontKillMe : 해당 환경 변수를 사용하면, 백그라운드 프레세스가 종료하지 않도록 할 수 있다.
반응형
'오류 해결' 카테고리의 다른 글
[Linux / 서버] Systemctl 서비스 생성 시 실행(ExecStart) 오류 (0) | 2024.11.07 |
---|---|
[Jenkins / 오류] Failed to start Jenkins Continuous Integration Server 설정 파일 (0) | 2024.08.13 |
[Tomcat / 오류] Kill failed: $CATALINA_PID not set (0) | 2024.01.18 |
[Jenkins / 오류] nohup 백그라운드 프로세스 실행 오류 (0) | 2024.01.17 |
[Jenkins / 오류] Kill -9 명령어 오류 해결(동일 서버) (0) | 2024.01.16 |