cron으로 Tomcat 재시작
1. 개요
프로덕트로 돌고 있는 톰캣이 메모리 릭으로 몇주에 한번씩 죽는 느낌이다. 릭을 잡아주면 좋겠지만 먹고사는게 세상이 녹녹하지 않으므로 새벽에 한번씩 리셋을 걸어서(...) 우선 서비스를 돌리자.
2. 크론잡 등록
매일 새벽 세시에 돌리자. 리버스 프록시는 멀쩡하므로 일단 톰캣만..
su tomcatusercrontab -e0 3 * * * [TOMCATPATH]/bin/restart.sh
3. 리셋 스크립트
리셋 스크립트는 심플하다
[TOMCATPATH]/bin/shutdown.shsleep 5[TOMCATPATH]/bin/startup.sh
결과 : 다음날 봤는데 안돌았다. 로그를 보니 크론잡은 돌았는데 프로세스 실행 시간을 보니 새벽 3시에 실행된게 아님. 무슨 일이지?
4. 리셋 스크립트 2
찾아보니 root 유저가 아닌 경우 환경변수를 새로 잡아야 잘 돈단다. 톰캣을 위해 필요한 경로 등 환경 변수를 추가함.
export PATH="/sbin:/bin:/usr/sbin:/usr/bin:[JAVA_HOME]"export JAVA_HOME="/usr/local/[JDKPATH]"export CATALINA_HOME="[TOMCATPATH]"[TOMCATPATH]/bin/shutdown.shsleep 5[TOMCATPATH]/bin/startup.sh
결과 : 잘 돈다. 릭 빨리 잡아조라...
5. 끝
참조
- Script file restart Tomcat runs manually success, but fails on Crontab : https://stackoverflow.com/questions/51205164/script-file-restart-tomcat-runs-manually-success-but-fails-on-crontab