톰캣 재시작 sh 만들기
linux에서 tomcat 재시작시에
tomcat 설치경로/bin/startup.sh 후에
tomcat 설치경로/bin/shutdown.sh 을 하거나,
servie 를 등록하여 restart하는 방법이 있다.
하지만, 본 글에서는
매번 실서버용 으로 수정하여 배포하고, 테스트 서버로 다시 수정하여 개발하기 번거롭기때문에
실서버에 실서버 환경설정 파일을 올리고 교체하여 재시작하는 쉘스크립트이다.
unzip 은 실제 업로드할 war파일이고, database.properties는 실서버에 적용될 파일이다.
서버에 설치된 톰캣 경로와 업드로할 war파일의 경로, 실제 적용할 database.properties의 경로를 수정하여 사용하면 된다.
(tomcat이 shutdown.sh 후에 바로 안죽을 수 있기때문에 5초 뒤에 프로세스를 강제로 죽이고 startup하는 sh 파일이다,)
/home/test/tomcat8/bin/shutdown.sh
unzip /home/test/tomcat8/tmp/TestApp.war -d /home/test/tomcat8/webapps
cp /home/test/tomcat8/webapps/TestApp/WEB-INF/classes/database.properties /home/test/tomcat8/tmp/database.properties
#!/bin/bash
export LANG=ko_KR.UTF-8
## 이곳에 각자 톰캣 경로를 넣어주면 됨
C_HOME=/home/test/tomcat8
C_PATH=$C_HOME/bin
## FUNCTION WAIT FOR 5 SECS
function standby() {
# full bar, e.g. 20 chars
BAR='####################'
VAC=' '
for i in {1..20}; do
# waited sec
var=`echo "0.25*$i"|bc`
# print $i chars of $BAR from 0 position && from $i to 20
echo -ne "\r>> STANBY [${BAR:0:$i}${VAC:$i:20}] $var sec << "
# wait 250ms between "frames"
sleep .25
done
echo -ne "\n"
}
### CHECK IS SERVER ALIVE
function isAlive() {
if [ -z "`ps -eaf | grep java | grep $C_PATH`" ]; then
# END
echo 0
else
# RUN
echo 1
fi
}
## CHECK THE PROCESS ENDED
if [ isAlive == 0 ]; then
echo -e "\n\t>>> Tomcat was terminated successfully. <<<\n"
else
## IF IT HAS NOT ENDED KILL PROCESS
ps -eaf | grep java | grep $C_PATH | awk '{print $2}' |
while read PID
do
standby
echo "Killing $PID... "
kill -9 $PID
echo -e "Tomcat($PID) is being killed\n"
done
fi
echo -e "\n\t>>> try to restart tomcat now <<<\n"
## RUN STARTUP.SH
bash $C_PATH/startup.sh
if [ isAlive == 0 ]; then
echo -e "\n\t>>> ERROR!!! CAN NOT START TOMCAT!! <<<"
else
## IF IS PROCESS RUN, CHECK USER WANNA TAIL LOG
echo -e "\n\t>>> TOMCAT STARTUP COMMAND IS ON ACTION. <<<"
fi
'개발 > 기타' 카테고리의 다른 글
[Docker] 명령어 정리 (0) | 2023.08.04 |
---|---|
[git] commit 및 push 되돌리기 (reset) (0) | 2022.11.07 |
[이클립스] 프로젝트 import 안될때 (0) | 2021.12.16 |
[tomcat] catalina.out 파일 안나오게 설정 (0) | 2021.08.11 |
[JSP] jstl date format 출력하기 (0) | 2020.12.23 |