반응형
Springboot 를 실행하는 것 기준으로 작성되었다.
jenkins 로 배포한 후에 스크립트를 이용해서 실행하고 싶을 때, 이전 프로세서를 죽여야 할 때가 있다.
안그러면 1개의 모듈이 2개 이상 뜨는 문제점이 발생할 수 있거나,
혹은 이전 프로세서때문에 새로 반영되어야 할 프로세서가 제대로 실행을 되지 않는 경우도
(포트가 겹쳐 신규 프로젝트가 실행하지 못하는 경우)
Build -> Execute shell 에서 다음과 같이 입력한다
PROC=`ps aux | grep web-test`
if [[ $PROC == *"web-test"* ]]; then
echo "Process is running."
sudo kill -15 `ps -ef | grep web-test | grep -v grep | awk '{print $2}'`
else
echo "Process is not running."
fi
# sudo 를 붙이지 않으면 실행되지 않았음.(nohup 이 붙어서 그런걸로 판단)
cd /[경로]/web-test
sudo nohup java -jar -Dspring.profiles.active=prod web-test.jar 1> /dev/null 2>&1 &
저장한 후 실행하여 로그를 보면 다음처럼 실행이 된다.
++ ps aux
++ grep web-test
+ PROC_MONIT='root 402301 0.0 0.0 243168 4696 ? S 09:32 0:00 sudo nohup java -jar -Dspring.profiles.active=prod web-test.jar
root 402308 3.8 2.6 13511888 868960 ? Sl 09:32 0:54 java -jar -Dspring.profiles.active=prod web-test.jar
jenkins 437607 0.0 0.0 116880 1016 ? S 09:56 0:00 grep web-test'
+ [[ root 402301 0.0 0.0 243168 4696 ? S 09:32 0:00 sudo nohup java -jar -Dspring.profiles.active=prod web-test.jar
root 402308 3.8 2.6 13511888 868960 ? Sl 09:32 0:54 java -jar -Dspring.profiles.active=prod web-test.jar
jenkins 437607 0.0 0.0 116880 1016 ? S 09:56 0:00 grep web-test == *\e\d\i\y\a\_\m\o\n\i\t\o\r\i\n\g* ]]
+ echo 'Process is running.'
Process is running.
++ ps -ef
++ grep web-test
++ grep -v grep
++ awk '{print $2}'
+ sudo kill -15 402301 402308
+ sudo nohup java -jar -Dspring.profiles.active=prod web-test.jar
Finished: SUCCESS
끝.
반응형
'공부 > 프로그래밍' 카테고리의 다른 글
[aws] DMS(Database Migration Service) 이용시 주의사항 (5) | 2019.09.24 |
---|---|
[gradle] build 실패(No cached version of available for offline mode) (0) | 2019.08.27 |
[spring] @Transactional 작동 안할때 확인해봐야 할 것 (4) | 2019.08.16 |
[JPA] DataSource 사용자설정 및 @DataJpaTest 테스트 (0) | 2019.08.04 |
[shell] 프로세스 실행 중 확인 (ps 명령어) (0) | 2019.07.31 |
댓글