一. 项目结构:
说明: 其中1为启动脚本,2为maven构建配置 3 为将项目构建成公司统一管理风格 4 为pom依赖
app_control.bash:
#!/bin/bash
set -o pipefail
set -u
EXTERNAL_LOADER_PATH="../conf"
SERVER_PORT=8080
SHUTDOWN_HOST=127.0.0.1
EXEC_STD_OUT=/dev/null
LOG_ROOT_PATH="./logs"
LOG_FILE_NAME="em.log"
#source env.bash
#evironment set
WEB_BIN=`pwd`
CONF_DIR="${WEB_BIN}/../conf"
CONFIG_LOCATION=/data1/www/rz_entrance/config/java_config/rz_em_etl/application.properties
JAVA_OPTS=" -server -Xmx1g -Xms1g -Xmn256m -XX:MetaspaceSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70"
JAVA_OPTS="${JAVA_OPTS} -Dserver.port=${SERVER_PORT}"
#JAVA_OPTS="${JAVA_OPTS} -Dloader.path=${WEB_BIN}/../conf,${EXTERNAL_LOADER_PATH}"
#JAVA_OPTS="${JAVA_OPTS} -Dlogging.path=${LOG_ROOT_PATH} -Dendpoints.logfile.external-file=${LOG_ROOT_PATH}/${LOG_FILE_NAME}"
START_UP_EXEC="java -Dfile.encoding=utf-8 -Dspring.config.location=${CONFIG_LOCATION} ${JAVA_OPTS} -jar $WEB_BIN/../lib/rz-em-etl.jar"
#Time Config
START_WAIT=5
SHUT_WAIT=10
KILL_INTERVAL=5
KILL_TIMES=5
#RETURN CODES
RET_SUCCESS=0
RET_INSTANCE_DEAD=1
RET_ERROR_SHUT=2
RET_ERROR_START=3
RET_STATUS_ALIVE=0
RET_STATUS_NOT_ALIVE=1
INSTANCE_PID=rz-em-etl.pid
function get_Pid(){
if [ ! -z ${INSTANCE_PID} ];then
if [ -f ${INSTANCE_PID} ];then
cat "${INSTANCE_PID}"
fi
else
ps -ef | grep -vE "grep $WEB_BIN|$0" | grep ${WEB_BIN} | awk '{print $2}'
fi
}
#get pid
PID=`get_Pid`
function usage(){
cat <<EOM
Purpose : This script encapsulates the spring boot jar and just acts like a controller.
Usage : bash ${0} start|shutdown|kill|force|restart|status
Date : 2017.03
EOM
}
#test instance alived or not
function is_Instance_Alive(){
#kill -0 : test process alived or not
if `kill -0 ${PID} 2>/dev/null` ; then
#0 stands for success in shell
return ${RET_SUCCESS}
else
return ${RET_INSTANCE_DEAD}
fi
}
## remove pid file
function remove_Pid(){
if [ ! -z ${INSTANCE_PID} ];then
if [ -f ${INSTANCE_PID} ];then
rm -f ${INSTANCE_PID}
fi
fi
}
## shutdown Instance
function shutd