냐냐한 IT/냐냐한 실습 기록

java -jar 실행 종료 및 시작 스크립트

소소하냐 2023. 2. 2. 10:37

실행중인 java -jar를 종료하고, *.jar 파일을 실행하는 명령어를 스크립트로 만들어 명령어를 줄여봅니다. 

 

스크립트 생성 전 

 

시작 명령어 

nohup java -jar 파일명.jar &

 

종료 명령어

# PID 알아오기 
ps -ef | grep java

# 종료
kill -15 [위에서 알아온 PID]

kill -9 (kill) 사용보다 kill -15 (terminate)를 사용하는 것이 더 안전하다고 합니다. 

 

 

그렇게 길지 않은 내용이긴 하지만,  하나의 명령어로 이용하고 싶습니다. 

 


실행 중이라면, 종료 후 시작 스크립트

start.sh 

#!/bin/bash

JAR=site-0.0.1-SNAPSHOT.jar
LOG=/root/site.log

SITE_PID=$(ps -ef | grep java | grep site | awk '{print $2}')

if [ -z "$SITE_PID" ];
then
    nohup java -jar $JAR > $LOG 2>&1 &
    echo "SITE start!"
else
    kill -15 $SITE_PID
    echo "SITE stopped."
    
    nohup java -jar $JAR > $LOG 2>&1 &
    echo "SITE start!"
fi
  • JAR=본인_파일명.jar 
  • LOG=원하는 경로
# 현재 경로를 확인하는 명령어
pwd
  • SITE_PID=$(ps -ef | grep java | grep 본인_파일명 | awk '{print $2}')

 

종료 스크립트

stop.sh

#!/bin/bash

SITE_PID=$(ps -ef | grep java | grep site | awk '{print $2}')

if [ -z "$SITE_PID" ];
then
    echo "SITE is not running"
else
    kill -15 $SITE_PID
    echo "SITE stopped."
fi

 

스크립트 파일 업로드 

터미널에서 vi 편집기 등으로 위 *.sh 들을 편집할 수 있습니다.

하지만, 저는 로컬에서 편한 에디터로 작업 후 FTP로 업로드 했습니다.

하지만, 파일 중 하나에서 오류가 발생했습니다. 

-bash: ./test.sh: /bin/bash^M: bad interpreter: No such file or directory

 

오류가 난 파일을 vi -b 명령어로 열어줍니다. -b 를 붙여야 문자열 끝에 ^M이 붙은 것을 확인할 수 있습니다. 

^M을 다 지워주고 저장하면 됩니다. (편집: i, 편집 완료: esc, 저장종료: :wq

vi -b test.sh

문자열 끝마다 ^M이 붙어있습니다. -> 삭제해줍니다.

파일 권한 추가

chmod +x start.sh
chmod +x stop.sh

권한 추가 전과 후

 

명령어 실행 결과 화면

staop.sh, start.sh, start.sh 명령어를 실행한 결과 화면

 

 

참고 URL : 점프 투 스프링부트 > 4-06 서버 스크립트