티스토리 뷰
Springboot에서 어플리케이션을 빌드한 jar를 실행하는 방법은 매우 간단하다.
$ java -jar some-application.jar
이렇게 실행하면 된다. 하지만 이렇게 했을때 foreground에서 동작을 해서 실행시킨 창을 항상 열어놔야 하는 단점이 있다. Jenkins 같은 곳에서 배포된 jar파일을 실행했을때 문제가 되기도 한다.
그래서 만약 some-application.jar 라는것을 background에서 실행도 가능해야하며 어플리케이션이 돌고 있는지 체크를 해서 죽이고 다시 시작하고 하는 로직도 필요하고 jvm 아규먼트도 항상 넣어줘야 하는 등의 행위를 편하게 하기 위해 실행 스크립트를 만들어서 사용을 한다. 또한 이렇게 스크립트로 만들어서 실행을 하면 실수를 방지할수도 있다.
stop.sh, startup.sh 파일을 각각 만들어서 사용할수도 있지만 아래와 같이 restart.sh 파일 하나만 만들어서 사용해도 된다.
$ vi restart.sh
=======================================================================================
#!/bin/bash
ps -ef | grep "some-application" | grep -v grep | awk '{print $2}' | xargs kill -9 2 > /dev/null
if [ $? -eq 0 ];then
echo "some-application Stop Success"
else
echo "some-application Not Running"
fi
echo "some-application Restart!"
echo $1
nohup $JAVA_HOME/bin/java -jar /deploy/some-application.jar --spring.profiles.active=dev > /dev/null 2>&1 &
이렇게 작성하고 파일을 저장한다. 그리고 실행권한을 줘야 한다.
$ chmod 755 restart.sh
실행권한을 주고 실행을 시켜 보자.
$ ./restart.sh
보통 root 권한으로 이런 어플리케이션을 실행시키지는 않으므로 sudo를 붙여 실행하면 오류없이 실행이 된다.
끝!
'Framework > Spring' 카테고리의 다른 글
Springboot war 파일 외부 WAS에서 실행하기 (0) | 2021.06.08 |
---|---|
Spring Locale처리 - AcceptHeaderLocaleResolver 사용법 (Browser Locale 변경방법) (0) | 2021.06.02 |
RequestMappingHandlerMapping interceptor 설정을 WebMvcConfigurationSupport interceptor로 전환하기 (0) | 2021.05.26 |
Springboot 2.1, 2.2, 2.3, 2.4, 2.5 migration history (0) | 2021.05.26 |
Springboot + MyBatis 초간단 Paging 처리하기 (with. PageHelper) (3) | 2021.05.24 |
댓글