crontab으로 스프링 서버 재시작하기

Sol's·2023년 5월 15일
0

Aws 무중단 배포

목록 보기
12/28

이전에 crontab을 배웠으니 활용을 해보겠습니다.

서버 종료 스크립트 만들기

spring-start.sh

nohup java -jar /home/ubuntu/aws-v1/build/libs/v1-0.0.1-SNAPSHOT.jar 1>log.out 2>err.out &

spring-stop.sh

echo "Spring Boot Stop....."
SPRING_PID=$(pgrep -f v1-0.0.1-SNAPSHOT.jar)
kill -9 $SPRING_PID

spring-restart.sh

  • if문에는 [] 양쪽으로 공백이 꼭 있어야 합니다.
SPRING_PID=$(pgrep -f v1-0.0.1-SNAPSHOT.jar)
SPRING_PATH="/home/ubuntu/aws-v1/build/libs/v1-0.0.1-SNAPSHOT.jar"

echo $SPRING_PID
echo $SPRING_PATH

if [ -z "$SPRING_PID" ]; then
  echo "스프링 종료된 상태...."
  echo "스프링 재시작 - $(date)" 1>>/home/ubuntu/cron-restart/spring-restart.log
  nohup java -jar $SPRING_PATH 1>log.out 2>err.out &
else
  echo "스프링 시작된 상태...."
fi

deploy.sh

# 1. 배포 프로세스
echo "deploy start..."
echo "1. JDK install"
echo "2. github project downloag"
echo "3. graglew 실행권한 주기"
echo "4. project build하기"
echo "5. ubuntu timezone setting 하기"
echo "6. nohub springboot 실행시키기"

# 2. 스프링서버 종료시 재시작
echo "crontab 등록 - spring restart..."
crontab -l > crontab_new
echo "* * * * * /home/ubuntu/cron-restart/spring-restart.sh" 1>>crontab_new
crontab crontab_new
rm crontab_new

deploy.sh 실행하기

이제 모든 스크립트 파일을 만들었습니다.
deploy.sh만 실행하면 crontab을알아서 등록하고, 서버를 설정한 시간마다 재시작 할것입니다.

./deploy.sh

설계한대로 잘 작동하는것을확인 할 수 있습니다!

profile
배우고, 생각하고, 행동해라

0개의 댓글