![동일한 터미널에서 애플리케이션을 실행한 후 명령을 실행할 수 있나요?](https://linux55.com/image/189415/%EB%8F%99%EC%9D%BC%ED%95%9C%20%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%9C%20%ED%9B%84%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
애플리케이션을 실행한 후 명령을 실행해야 하지만 내 애플리케이션이 실행 중인 경우 터미널이 애플리케이션을 실행하기 때문에 이것이 가능한지 확실하지 않습니다. (Jenkins 파이프라인에 필요합니다)
가능하다면 알고 계시나요?
답변1
이런 종류의 문제는 서비스로 실행되어야 하는 애플리케이션이 있을 때 매우 일반적입니다. 그러나 이 접근 방식에는 몇 가지 문제가 있습니다. 첫 번째는 애플리케이션이 서비스나 데몬으로 실행될 준비가 되지 않았다는 것입니다. 이것이 오늘날 대부분의 사람들이 애플리케이션을 Docker 이미지로 패키징하고 배포하는 이유입니다.
Jenkins는 각 단계가 끝날 때 시작되는 모든 프로세스를 종료하도록 설계되었습니다. 이 동작을 원하지 않으면 JENKINS_NODE_COOKIE
변수를 "dontKillMe"로 설정해 보십시오. 이 같은:
sh "export JENKINS_NODE_COOKIE=dontKillMe"
sh "myApp &"
Jenkins 버전에 따라 BUILD_ID
이 변수를 "donKillMe"로 설정해야 할 수도 있습니다.
감사합니다.