배포 shell 스크립트로 배포를 할때는 자동으로 tomcat이 shutdown되는 일이 있었는데 수동으로 한줄 한줄 스크립트를 실행시켜서 배포 할때는 자동으로 tomcat이 shutdown 되지가 않아 원인을 2달동안 못찾았다
원인 파악 후 위 이슈가 생기려면 아래와 같은 조건이 필요하다
1. 배포 스크립트에서 tomcat을 서비스로 실행시키지 않고 tomcat의 shutdown.sh, startup.sh 로 실행시킨다.
2. 1번 조건에서 shutdown.sh, start.sh를 백그라운드로 실행시키지 않는다. (&, nohup 사용 안함)
3. 2번 조건으로 tomcat을 start 한 후 마지막에 tail -f 로 로그를 확인한다
4. tail -f 로 로그를 확인 하는 중에 ssh 접속 프로그램을 강제로 꺼버린다. (강제 session 종료)
아래 배포 스크립트로 tomcat stop, start후 업데이트 할 파일 교체가 끝나고 start 한 후 tail -f 로 로그를 확인 하는 중에 ssh 접속 프로그램을 꺼버린다면 tomcat 이 자동으로 shutdown 돼 버린다.
이유는 정확히 모르겠지만 강제 종료 했을때 shell이 정상적으로 실행이 안됐다고 판단해서 세션이 tomcat을 stop하는것 같다. 그래서 tail -f 걸어놓은 로그를 ctrl + c 해서 정상 종료하면 tomcat 이 stop 안된다.
sh /data/apache/tomcat/shutdown.sh
#파일 교체
sh /data/apache/tomcat/startup.sh
tail -f catalina.out
tomcat이 자동으로 stop되는 것을 방지하려면 애초에 백그라운드에서 실행이 되어야 한다. 그러러면 서비스에 등록해서 실행을 시키던가. 아래처럼 nohup이나 & 로 실행을 시켜야 한다.
nohup /data/apache/tomcat/shutdown.sh
#파일 교체
nohup /data/apache/tomcat/startup.sh
tail -f catalina.out
'Project > CodyTheManager' 카테고리의 다른 글
[Git] GUI git 툴 이용해서 특정 변경 파일만 stash 하는 방법 (0) | 2023.11.28 |
---|---|
[MySql, MariaDB] DB Lock 확인 및 Kill 방법 (2) | 2023.11.23 |
[MariaDB] DB 이중화 확인 방법과 명령어 (0) | 2023.03.09 |
[Mariadb] Lock wait timeout exceeded; try restarting transaction 원인과 해결방안, 격리레벨 변경 방법 (0) | 2022.12.14 |
톰캣9(Tomcat9) 써트코리아 SSL 인증서 적용방법 (0) | 2022.10.31 |