Linux 에서 Tomcat 재시작 하는 스크립트

테스트 서버에서 구성해 둔 Tomcat을 재기동할 때마다 일일히 shutdown 시키고, startup 하는게 귀찮아서 한방에 재시작할 수 있도록 restart.sh를 만들어 봤다.
기존의 startup.sh와 shutdown.sh가 있는 상태에서 작동한다.

#!/bin/bash
export LANG=ko_KR.UTF-8

## 이곳에 각자 경로를 넣어주면 됨
C_HOME=/usr/local/tomcat7
C_PATH=$C_HOME/bin
C_LOG=$C_HOME/logs

#echo $C_HOME
#echo $C_PATH
#echo $C_LOG

## FUNCTION WAIT FOR 5 SECS
function stanby() {
  # 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
}


echo -e "\n\n\t\t !!>> RESTART.SH RUN `date +%Y-%m-%d' '%H:%M:%S` <<!!\n\n" >> $C_LOG/catalina.out

## RUN SHUTDOWN.SH
echo -e "\nShutdown tomcat now...\n"
bash $C_PATH/shutdown.sh

stanby

## 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
    echo "Killing $PID... "
    kill -9 $PID
    echo -e "Tomcat($PID) is being killed\n"
  done

  stanby
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. <<<"
  echo -en "tail log?? (y|n) : "
  read yn

  ## TAIL LOG
  if [ $yn == "y" ] || [ $yn == "Y" ]; then
    # **CHECK DIR**
    tail -f $C_LOG/catalina.out
  fi
fi

프로세스 확인하는 함수를 따로 빼 두거나,
startup이나 shutdown의 경로를 따로 변수로 잡아주면 좋을것 같지만 일단 킵해두도록 함.

추가적으로 서버 기동 후 로그를 보는 명령어도 귀찮아서 shell 파일로 만들어 봤다.

    #!/bin/bash
    export LANG=ko_KR.UTF-8

    tail -f ../logs/catalina.out
728x90
반응형

+ Recent posts