SpringBoot Jar/War 파일을 리눅스에서 백그라운드로 구동시 필요한 쉘스크립트를 작성하였습니다.
SERVICE_NAME : 서비스 이름을 설정합니다.
SERVICE_PATH : 서비스 경로를 설정합니다.
JAR_NAME : 구동하려는 Jar/War 파일명을 설정합니다.
구동은 run.sh {start | stop | restart | status } 로 구동합니다.
#!/bin/bash
#--------------------------------------------------------
# service information
#--------------------------------------------------------
SERVICE_NAME="WAS ADMIN SERVER"
SERVICE_PATH=/sw/was_admin
JAR_NAME=was_admin-0.0.1-SNAPSHOT.war
PID_NAME=was.pid
#--------------------------------------------------------
# java run information
#--------------------------------------------------------a
JAVA_PATH="java"
#JAVA_OPT="-Xms1024m -Xmx1024m"
JAVA_OPT=""
RUN_SUDO="sudo"
RUN_NOHUP="nohup"
start()
{
echo "------------------------------------------------------"
echo " Starting $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "${SERVICE_NAME} is already running...\n"
ps -ef | grep ${JAR_NAME} | grep -v grep
echo ""
exit 0
fi
rm -f $SERVICE_PATH/$PID_NAME
$RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 &
local PID=$!
echo $PID > $SERVICE_PATH/$PID_NAME
sleep 1
if [ -n ${PID_NAME} ]; then
echo "Starting..."
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Created Process ID : $PID"
echo -e "Process started...\n"
#ps -ef | grep ${JAR_NAME} | grep -v grep
#echo ""
exit 0
else
echo -e "Failed to start...\n"
fi
else
echo -e "Failed to start...\n"
fi
}
stop()
{
echo "------------------------------------------------------"
echo " Stopping $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null
if [ $? -eq 0 ];then
rm -f $SERVICE_PATH/$PID_NAME
echo -e "Stop success...\n"
exit 0
fi
else
rm -f $SERVICE_PATH/$PID_NAME
echo -e "Process is not running...\n"
fi
}
restart()
{
echo "------------------------------------------------------"
echo " Restaring $SERVICE_NAME ..."
echo "------------------------------------------------------"
# stop process
echo "Process stopping..."
ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null
echo -e "Process stopped...\n"
rm -f $SERVICE_PATH/$PID_NAME
# start process
rm -f $SERVICE_PATH/$PID_NAME
$RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 &
local PID=$!
echo $PID > $SERVICE_PATH/$PID_NAME
sleep 1
if [ -n ${PID_NAME} ]; then
echo "Starting..."
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Created Process ID : $PID"
echo -e "Process started...\n"
#ps -ef | grep ${JAR_NAME} | grep -v grep
#echo ""
exit 0
else
echo -e "Failed to start...\n"
fi
else
echo -e "Failed to start...\n"
fi
}
status()
{
echo "------------------------------------------------------"
echo " Status $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Process is running...\n"
ps -ef | grep ${JAR_NAME} | grep -v grep
echo ""
else
echo -e "Process is not running...\n"
fi
}
get_status()
{
ps aux | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "------------------------------------------------------"
echo " $SERVICE_NAME ..."
echo "------------------------------------------------------"
echo -e "Run with parameter (start, stop, restart, status)\n"
;;
esac
#!/bin/bash
#--------------------------------------------------------
# service information
#--------------------------------------------------------
SERVICE_NAME="WAS ADMIN SERVER"
SERVICE_PATH=/sw/was_admin
JAR_NAME=was_admin-0.0.1-SNAPSHOT.war
PID_NAME=was.pid
#--------------------------------------------------------
# java run information
#--------------------------------------------------------a
JAVA_PATH="java"
#JAVA_OPT="-Xms1024m -Xmx1024m"
JAVA_OPT=""
RUN_SUDO="sudo"
RUN_NOHUP="nohup"
start()
{
echo "------------------------------------------------------"
echo " Starting $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "${SERVICE_NAME} is already running...\n"
ps -ef | grep ${JAR_NAME} | grep -v grep
echo ""
exit 0
fi
rm -f $SERVICE_PATH/$PID_NAME
$RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 &
local PID=$!
echo $PID > $SERVICE_PATH/$PID_NAME
sleep 1
if [ -n ${PID_NAME} ]; then
echo "Starting..."
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Created Process ID : $PID"
echo -e "Process started...\n"
#ps -ef | grep ${JAR_NAME} | grep -v grep
#echo ""
exit 0
else
echo -e "Failed to start...\n"
fi
else
echo -e "Failed to start...\n"
fi
}
stop()
{
echo "------------------------------------------------------"
echo " Stopping $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null
if [ $? -eq 0 ];then
rm -f $SERVICE_PATH/$PID_NAME
echo -e "Stop success...\n"
exit 0
fi
else
rm -f $SERVICE_PATH/$PID_NAME
echo -e "Process is not running...\n"
fi
}
restart()
{
echo "------------------------------------------------------"
echo " Restaring $SERVICE_NAME ..."
echo "------------------------------------------------------"
# stop process
echo "Process stopping..."
ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null
echo -e "Process stopped...\n"
rm -f $SERVICE_PATH/$PID_NAME
# start process
rm -f $SERVICE_PATH/$PID_NAME
$RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 &
local PID=$!
echo $PID > $SERVICE_PATH/$PID_NAME
sleep 1
if [ -n ${PID_NAME} ]; then
echo "Starting..."
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Created Process ID : $PID"
echo -e "Process started...\n"
#ps -ef | grep ${JAR_NAME} | grep -v grep
#echo ""
exit 0
else
echo -e "Failed to start...\n"
fi
else
echo -e "Failed to start...\n"
fi
}
status()
{
echo "------------------------------------------------------"
echo " Status $SERVICE_NAME ..."
echo "------------------------------------------------------"
local CHECK_PID=$(get_status)
if [ -n "${CHECK_PID}" ]; then
echo -e "Process is running...\n"
ps -ef | grep ${JAR_NAME} | grep -v grep
echo ""
else
echo -e "Process is not running...\n"
fi
}
get_status()
{
ps aux | grep ${JAR_NAME} | grep -v grep | awk '{print $2}'
}
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
*)
echo "------------------------------------------------------"
echo " $SERVICE_NAME ..."
echo "------------------------------------------------------"
echo -e "Run with parameter (start, stop, restart, status)\n"
;;
esac
#!/bin/bash #-------------------------------------------------------- # service information #-------------------------------------------------------- SERVICE_NAME="WAS ADMIN SERVER" SERVICE_PATH=/sw/was_admin JAR_NAME=was_admin-0.0.1-SNAPSHOT.war PID_NAME=was.pid #-------------------------------------------------------- # java run information #--------------------------------------------------------a JAVA_PATH="java" #JAVA_OPT="-Xms1024m -Xmx1024m" JAVA_OPT="" RUN_SUDO="sudo" RUN_NOHUP="nohup" start() { echo "------------------------------------------------------" echo " Starting $SERVICE_NAME ..." echo "------------------------------------------------------" local CHECK_PID=$(get_status) if [ -n "${CHECK_PID}" ]; then echo -e "${SERVICE_NAME} is already running...\n" ps -ef | grep ${JAR_NAME} | grep -v grep echo "" exit 0 fi rm -f $SERVICE_PATH/$PID_NAME $RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 & local PID=$! echo $PID > $SERVICE_PATH/$PID_NAME sleep 1 if [ -n ${PID_NAME} ]; then echo "Starting..." local CHECK_PID=$(get_status) if [ -n "${CHECK_PID}" ]; then echo -e "Created Process ID : $PID" echo -e "Process started...\n" #ps -ef | grep ${JAR_NAME} | grep -v grep #echo "" exit 0 else echo -e "Failed to start...\n" fi else echo -e "Failed to start...\n" fi } stop() { echo "------------------------------------------------------" echo " Stopping $SERVICE_NAME ..." echo "------------------------------------------------------" local CHECK_PID=$(get_status) if [ -n "${CHECK_PID}" ]; then ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null if [ $? -eq 0 ];then rm -f $SERVICE_PATH/$PID_NAME echo -e "Stop success...\n" exit 0 fi else rm -f $SERVICE_PATH/$PID_NAME echo -e "Process is not running...\n" fi } restart() { echo "------------------------------------------------------" echo " Restaring $SERVICE_NAME ..." echo "------------------------------------------------------" # stop process echo "Process stopping..." ps -ef | grep "$JAR_NAME" | grep -v grep | awk '{print $2}' | xargs $RUN_SUDO kill -9 2>/dev/null echo -e "Process stopped...\n" rm -f $SERVICE_PATH/$PID_NAME # start process rm -f $SERVICE_PATH/$PID_NAME $RUN_SUDO $RUN_NOHUP $JAVA_PATH -jar $JAVA_OPT $SERVICE_PATH/$JAR_NAME >> /dev/null 2>&1 & local PID=$! echo $PID > $SERVICE_PATH/$PID_NAME sleep 1 if [ -n ${PID_NAME} ]; then echo "Starting..." local CHECK_PID=$(get_status) if [ -n "${CHECK_PID}" ]; then echo -e "Created Process ID : $PID" echo -e "Process started...\n" #ps -ef | grep ${JAR_NAME} | grep -v grep #echo "" exit 0 else echo -e "Failed to start...\n" fi else echo -e "Failed to start...\n" fi } status() { echo "------------------------------------------------------" echo " Status $SERVICE_NAME ..." echo "------------------------------------------------------" local CHECK_PID=$(get_status) if [ -n "${CHECK_PID}" ]; then echo -e "Process is running...\n" ps -ef | grep ${JAR_NAME} | grep -v grep echo "" else echo -e "Process is not running...\n" fi } get_status() { ps aux | grep ${JAR_NAME} | grep -v grep | awk '{print $2}' } case $1 in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "------------------------------------------------------" echo " $SERVICE_NAME ..." echo "------------------------------------------------------" echo -e "Run with parameter (start, stop, restart, status)\n" ;; esac