반응형

톰캣 재시작 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
반응형

+ Recent posts