开张大吉。
This commit is contained in:
150
sh/boot.sh
Normal file
150
sh/boot.sh
Normal file
@@ -0,0 +1,150 @@
|
||||
#!/bin/bash
|
||||
|
||||
#进入脚本所在目录
|
||||
cd `dirname $0`
|
||||
|
||||
#变量定义
|
||||
APOLLO_META_SERVER=http://localhost:66
|
||||
ENV=dev
|
||||
APP_NAME=fizz-gateway-community-1.0.0.jar
|
||||
APP_DEP_DIR=/data/webapps/fizz-gateway
|
||||
APP_LOG_DIR=/data/logs/fizz-gateway
|
||||
JAVA_CMD=/usr/local/java/bin/java
|
||||
PID_FILE="${APP_LOG_DIR}/tpid"
|
||||
CHECK_COUNT=3
|
||||
SERVER_IP="` ip a | egrep "brd" | grep inet | awk '{print $2}' | sed 's#/24##g'`"
|
||||
|
||||
#创建应用目录
|
||||
mkdir -p ${APP_DEP_DIR}
|
||||
|
||||
#创建日志目录
|
||||
mkdir -p ${APP_LOG_DIR}
|
||||
|
||||
#进入应用所在目录(虽然都是绝对路径,但有些应用需要进入应用目录才能启动成功)
|
||||
cd ${APP_DEP_DIR}
|
||||
|
||||
JAVA_OPTS="-Xms256m -Xmx4096m \
|
||||
-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m \
|
||||
-XX:+AggressiveOpts \
|
||||
-XX:+UseBiasedLocking \
|
||||
-XX:+UseG1GC \
|
||||
-XX:+HeapDumpOnOutOfMemoryError \
|
||||
-XX:-OmitStackTraceInFastThrow \
|
||||
-verbose:gc \
|
||||
-XX:+PrintGCDetails \
|
||||
-XX:+PrintGCDateStamps \
|
||||
-XX:+PrintHeapAtGC \
|
||||
-Xloggc:${APP_LOG_DIR}/${START_DATE_TIME}.gc \
|
||||
-XX:+HeapDumpOnOutOfMemoryError \
|
||||
-XX:HeapDumpPath=${APP_LOG_DIR}/dump.logs \
|
||||
-Dorg.jboss.netty.epollBugWorkaround=true \
|
||||
-Dio.netty.leakDetectionLevel=PARANOID -Dio.netty.leakDetection.targetRecords=60 \
|
||||
-Dio.netty.allocator.type=unpooled \
|
||||
-Dio.netty.noPreferDirect=true \
|
||||
-Dio.netty.noUnsafe=true "
|
||||
|
||||
#进程状态标识变量,1为存在,0为不存在
|
||||
PID_FLAG=0
|
||||
|
||||
#检查服务进程是否存在
|
||||
checktpid() {
|
||||
TPID=`cat ${PID_FILE} | awk '{print $1}'`
|
||||
TPID=`ps -aef | grep ${TPID} | awk '{print $2}' | grep ${TPID}`
|
||||
if [[ ${TPID} ]]
|
||||
then
|
||||
PID_FLAG=1
|
||||
else
|
||||
PID_FLAG=0
|
||||
fi
|
||||
}
|
||||
|
||||
#启动服务函数
|
||||
start() {
|
||||
#检查进程状态
|
||||
checktpid
|
||||
if [[ ${PID_FLAG} -ne 0 ]]
|
||||
then
|
||||
echo "warn: $APP_NAME already started, ignoring startup request."
|
||||
else
|
||||
echo "starting $APP_NAME ..."
|
||||
rm -f ${PID_FILE}
|
||||
#rm -rf ${APP_LOG_DIR}/flumeES/*
|
||||
${JAVA_CMD} -jar ${JAVA_OPTS} -Denv=$ENV -Dapollo.meta=${APOLLO_META_SERVER} ${APP_DEP_DIR}/${APP_NAME} > ${APP_LOG_DIR}/${APP_NAME}.log 2>&1 &
|
||||
echo $! > ${PID_FILE}
|
||||
fi
|
||||
}
|
||||
|
||||
#关闭服务函数
|
||||
stop() {
|
||||
#检查进程状态
|
||||
checktpid
|
||||
|
||||
if [[ ${PID_FLAG} -ne 0 ]]
|
||||
then
|
||||
echo "stoping $APP_NAME..."
|
||||
|
||||
#循环检查进程3次,每次睡眠2秒
|
||||
for((i=1;i<=${CHECK_COUNT};i++))
|
||||
do
|
||||
kill -9 ${TPID}
|
||||
sleep 2
|
||||
|
||||
#检查进程状态
|
||||
checktpid
|
||||
|
||||
if [[ ${PID_FLAG} -eq 0 ]]
|
||||
then
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
#如果以上正常关闭进程都失败,则强制关闭
|
||||
if [[ ${PID_FLAG} -ne 0 ]]
|
||||
then
|
||||
echo "stoping use kill -9..."
|
||||
kill -9 ${TPID}
|
||||
sleep 2
|
||||
else
|
||||
echo "$APP_NAME Stopped!"
|
||||
fi
|
||||
|
||||
else
|
||||
echo "warn:$APP_NAME is not runing"
|
||||
fi
|
||||
}
|
||||
|
||||
#检测进程状态函数
|
||||
status() {
|
||||
#检查进程状态
|
||||
checktpid
|
||||
|
||||
if [[ ${PID_FLAG} -eq 0 ]]
|
||||
then
|
||||
echo "$APP_NAME is not runing"
|
||||
else
|
||||
echo "$APP_NAME is runing"
|
||||
fi
|
||||
}
|
||||
|
||||
#####脚本执行入口#####
|
||||
case "$1" in
|
||||
'start')
|
||||
start
|
||||
;;
|
||||
'stop')
|
||||
stop
|
||||
;;
|
||||
'restart')
|
||||
stop
|
||||
start
|
||||
;;
|
||||
'status')
|
||||
status
|
||||
;;
|
||||
*)
|
||||
echo "usage: $0 {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user