본문 바로가기
INFRA

[리눅스] 배치 실행 스크립트

by place-g 2025. 2. 28.
반응형

 

배치를 (재)시작 하는 스크립트

 

1. batch.pid 파일을 활용하여 현재 실행중인 프로세스의 pid를 보관한다.

pid가 있으면 프로세스가 실행중이라고 판단.

 

2. 시작할 때 pid 파일 여부를 확인

1) pid 파일이 있음

- 이미 실행중으로 판단하고, pid 프로세스를 종료한다.

- pid파일을 삭제 한다.

- batch.jar 파일을 실행한다.

- 프로세스 pid를 pid파일에 저장한다.

 

2) pid 파일이 없음

- batch.jar 파일을 실행한다.

- 프로세스 pid를 pid파일에 저장한다.

SERVICE_NAME=batch
PATH_TO_JAR="/batch/jar/batch-1.0.jar"
PID_PATH_NAME="/batch/bin/pid/batch.pid"
JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Dspring.application.name=batch1 -Dspring.profiles.active=prd -Dserver.port=10000 -Djasypt.key=[키]"

echo "Starting $SERVICE_NAME ..."

if [ ! -f $PID_PATH_NAME ]; then
nohup java $JAVA_OPTS -jar $PATH_TO_JAR 1 > /dev/null 2>&1 &

echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."

PID=$(cat $PID_PATH_NAME)

echo "$SERVICE_NAME stopping ..."
kill $PID
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME

nohup java $JAVA_OPTS -jar $PATH_TO_JAR 1 > /dev/null 2>&1 &

echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."

fi
반응형