기술 창고/Shell
[Shell] 간단한 프로젝트 실행 / 중단 script
JayEsEichi
2025. 4. 16. 16:53
728x90
반응형
SMALL
만약 CI/CD 를 적용하지 않으면 일일히 수기로 프로젝트를 빌드하여 배포 후 실행하게 될 텐데 이것을 좀 더 간편하게 script 를 통해 실행 혹은 중단 작업을 실행할 수 있게 된다면 조금이라고 편하지 않을까요?
CI/CD를 적용하기 이전에 간단하게 이 작업들을 할 수 있게 하는 간단한 script 를 작성하여 실행해보는 과정을 정리해보겠습니다.
실행 Script 작성
[예시 Script]
#!/bin/bash
cd /home/onnury/web
KEYWORD="OnNury-0.0.1-SNAPSHOT.jar"
find_java_svr_pid() {
PID=$(ps aux | grep "$KEYWORD" | grep -v grep | awk '{print $2}')
}
kill_java_svr() {
if [ -n "$PID" ]; then
kill "$PID"
echo "온누리 몰 프로세스 (PID: $PID)를 종료 후 재실행합니다."
else
echo "실행 중인 온누리 몰 프로세스를 찾을 수 없습니다."
fi
}
find_java_svr_pid
kill_java_svr
nohup java -jar -server -Xmx5g -XX:+UseG1GC -Djava.awt.headless=true -Dspring.profiles.active=dev -Dsvr.nm=ONNURY_DEV -Dfile.encoding=UTF-8 OnNury-0.0.1-SNAPSHOT.jar 1> /dev/null 2>&1 &
예시로 작성한 실행 Script입니다.
# 작성한 코드에 대한 세부 설명
더보기
#!/bin/bash
# 배포한 서버의 /home/onnury/web 경로에 진입
cd /home/onnury/web
# 실행하고자 하는 빌드한 jar 파일명을 KEYWORD 변수로 지정
KEYWORD="OnNury-0.0.1-SNAPSHOT.jar"
# KEYWORD 변수에 지정한 값을 가진 프로세스의 pid를 가져와 PID변수에 지정하는 함수 작성
find_java_svr_pid() {
PID=$(ps aux | grep "$KEYWORD" | grep -v grep | awk '{print $2}')
}
# PID 변수에 실행되고있는 프로세스가 만약 존재할 경우 삭제 / 존재하지 않으면 텍스트만 출력하는 함수 작성
kill_java_svr() {
if [ -n "$PID" ]; then
kill "$PID"
echo "온누리 몰 프로세스 (PID: $PID)를 종료 후 재실행합니다."
else
echo "실행 중인 온누리 몰 프로세스를 찾을 수 없습니다."
fi
}
# 위에서 만든 프로세스 PID 검색 함수 우선 실행
find_java_svr_pid
# 두 번째 실행 중이던 프로세스 삭제 검증 함수 실행
kill_java_svr
# 빌드한 jar 파일 실행
nohup java -jar -server -Xmx5g -XX:+UseG1GC -Djava.awt.headless=true -Dspring.profiles.active=dev -Dsvr.nm=ONNURY_DEV -Dfile.encoding=UTF-8 OnNury-0.0.1-SNAPSHOT.jar 1> /dev/null 2>&1 &
종료 Script 작성
[예시 Script]
#!/bin/bash
cd /home/onnury/web
KEYWORD="OnNury-0.0.1-SNAPSHOT.jar"
find_java_svr_pid() {
PID=$(ps aux | grep "$KEYWORD" | grep -v grep | awk '{print $2}')
}
kill_java_svr() {
if [ -n "$PID" ]; then
kill "$PID"
echo "온누리 몰 프로세스 (PID: $PID)를 종료했습니다."
else
echo "실행 중인 온누리 몰 프로세스를 찾을 수 없습니다."
fi
}
find_java_svr_pid
kill_java_svr
예시로 작성한 종료 Script입니다.
# 작성한 코드에 대한 세부 설명
더보기
#!/bin/bash
# 배포한 서버의 /home/onnury/web 경로에 진입
cd /home/onnury/web
# 종료하고자 하는 빌드한 jar 파일명을 KEYWORD 변수로 지정
KEYWORD="OnNury-0.0.1-SNAPSHOT.jar"
# KEYWORD 변수에 지정한 값을 가진 프로세스의 pid를 가져와 PID변수에 지정하는 함수 작성
find_java_svr_pid() {
PID=$(ps aux | grep "$KEYWORD" | grep -v grep | awk '{print $2}')
}
# PID 변수에 실행되고있는 프로세스가 만약 존재할 경우 삭제 / 존재하지 않으면 텍스트만 출력하는 함수 작성
kill_java_svr() {
if [ -n "$PID" ]; then
kill "$PID"
echo "온누리 몰 프로세스 (PID: $PID)를 종료했습니다."
else
echo "실행 중인 온누리 몰 프로세스를 찾을 수 없습니다."
fi
}
# 위에서 만든 프로세스 PID 검색 함수 우선 실행
find_java_svr_pid
# 두 번째 실행 중이던 프로세스 삭제 검증 함수 실행
kill_java_svr
상황에 따라 Script 실행
이제 jar를 배포하고자 하는 서버에 접속하여 작성한 2개의 script 파일을 올리고 커맨드로 올려진 파일들 경로에 들어가 shell script 들을 실행해주면 됩니다.
[실행 명령어]
sh {script 명} 혹은 bash {script 명}
728x90
반응형
LIST