[실행]쉘 스크립트에서 jar 파일 start | stop
Spring Boot 로 만들어진 Java Application 을 excutable jar 로 export 함.
Linux 에서 Shell Script 로 실행하는 코드는 다음과 같음
Linux 에서 실행
start.sh/ stop.sh 위치 : home/
실행 jar 위치 : home/config-service/confiv-service.jar
home/ 에서
$./start.sh or $sh start.sh
start.sh
!/bin/bash
readonly CONFIG_NAME="config-service"
readonly CONFIG_SERVICE="/config-service.jar"
readonly CONFIG_PATH="-Dspring.config.location=file:./config/"
readonly PID_PATH="/config-service"
PROC_PID=".${PID_PATH}/${CONFIG_NAME}.pid"
get_status()
{
ps ux | grep ${CONFIG_NAME} | grep -v grep | awk '{print $2}'
}
echo "Starting ${CONFIG_NAME} ..."
PID=$(get_status)
if [ -n "${PID}" ]; then
echo "${CONFIG_NAME} is already running"
exit 0
fi
#nohup java -jar -XX:MaxPermSize=128m -Xms512m -Xmx1024m "${CONFIG_SERVICE}" > /dev/null 2>&1 &
nohup ./${CONFIG_NAME}${CONFIG_SERVICE} > /dev/null 2>&1 &
PID=${!}
if [ -n ${PID} ]; then
echo " - Starting..."
echo " - Created Process ID in ${PROC_PID}"
echo ${PID} > ${PROC_PID}
else
echo " - failed to start."
fi
stop.sh
#!/bin/bash
readonly CONFIG_NAME="config-service"
readonly CONFIG_SERVICE="/config-service.jar"
readonly CONFIG_PATH="-Dspring.config.location=file:./config/"
readonly PID_PATH="/config-service"
PROC_PID=".${PID_PATH}/${CONFIG_NAME}.pid"
echo "Stopping ${CONFIG_NAME}..."
DAEMON_PID=`cat "${PROC_PID}"
if [ "$DAEMON_PID" -lt 3 ]; then
echo "${CONFIG_NAME} was not running."
else
#kill $DAEMON_PID
kill -- -$(ps -o pgid= $DAEMON_PID | grep -o [0-9]*) // Child Process 까지 같이 Kill
rm -f $PROC_PID
echo " - Shutdown ...."
fi
TODO : 소스코드 편집기로 글 수정
TODO : 마이크로 서비스 Shell Script 추가하기