터미널을 계속 켜두고 있어야하니까 내 작업할 때 불편함도 있고 그래서 백그라운드 실행을 하기로 했다.
$ nano restart.sh // 에디터로 파일을 생성한 후 아래 내용을 붙여넣기 해주세요.
================================================================================
#!/bin/bash
# DeployServer-0.0.1-SNAPSHOT.jar가 실행 중이라면 프로세스를 종료합니다.
ps -ef | grep "DeployServer-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
# 종료 이력을 파악하여 적절한 문구를 출력합니다.
if [ $? -eq 0 ];then
echo "my-application Stop Success"
else
echo "my-application Not Running"
fi
# DeployServer-0.0.1-SNAPSHOT.jar를 다시 실행하기 위한 과정을 진행합니다.
echo "my-application Restart!"
echo $1
# nohup 명령어를 통해 백그라운드에서 DeployServer-0.0.1-SNAPSHOT.jar를 실행합니다.
nohup java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev > /dev/null 2>&1 &
리눅스에 위와 같이 파일을 저장하고 아래 명령어를 통해 실행 권한을 부여한다.
chmod 755 restart.sh
위와 같이 명령어를 수행하였으면 아래 명령어를 통해 실행이 가능합니다.
./restart.sh
경우에 따라 권한 이슈로 실행이 되지 않는 경우가 있는데, 이 경우 sudo를 붙여 실행하면 오류 없이 실행된다.
위의 셸 스크립트는 DeployServer-0.0.1-SNAPSHOT.jar를 종료하고, 다시 실행하는 과정이 적혀있다.
즉, 빌드 후 빌드 결과물을 실행할 때에, 이미 동일한 프로젝트가 실행중인 경우 해당 프로세스를 종료(kill)한 후 실행하도록 되어있다.
정보에 감사드립니다.