Jenkins에서 파이프라인(pipeline)으로 쉘 스크립트를 실행시켜 톰캣을 실행하는 Deploy과정에서 톰캣이 정상적으로 기동하다가 멈추는 현상이 발생하였다!!
구글링결과 이유는 다음과 같다.
Jenkins에서 Job이 종료될 경우 실행 시켰던 프로세스들의 child proccess까지 kill을 한다는 것!
해서, 실행시켰던 것을 죽이지 말고 Job이 종료되는 법을 찾아본 결과 Jenkins에서 파이프라인 쉘 명령어에 아래와 같이 입력을 해주는 것이다!
stage('Deploy') {
steps {
sshagent(['test']) {
sh "${env.WORKSPACE}/deploy.sh"
}
}
}
stage('Deploy') {
steps {
sshagent(['test']) {
sh "JENKINS_NODE_COOKIE=dontKillMe && nohup sh ${env.WORKSPACE}/deploy.sh &"
}
}
}
결과적으로, 스크립트에 'JENKINS_NODE_COOKIE=dontKillMe'를 넣어줌으로써 강제종료를 회피하였다.
오늘도 스킬업!