miin29na

[실행]쉘 스크립트에서 jar 파일 start | stop 본문

IT_Infra/배포

[실행]쉘 스크립트에서 jar 파일 start | stop

miin29na 2018. 11. 8. 16:43

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 추가하기

                                                                                                                                                                                                          

                        

'IT_Infra > 배포' 카테고리의 다른 글

[배포]Jenkins 설정 + git 연동 + Maven Project  (0) 2018.11.06
Comments