|
@@ -0,0 +1,114 @@
|
|
|
|
+#!/bin/bash
|
|
|
|
+
|
|
|
|
+APP_NAME=app-1.0-SNAPSHOT.jar
|
|
|
|
+
|
|
|
|
+cd `dirname $0`
|
|
|
|
+cd ..
|
|
|
|
+
|
|
|
|
+STDOUT_FILE=/dev/null
|
|
|
|
+
|
|
|
|
+# 配置文件存放位置,如果有多个,则以逗号分隔
|
|
|
|
+JAVA_PATH_OPTS=" -Dloader.path=config -Djava.io.tmpdir=./ "
|
|
|
|
+# 基础参数
|
|
|
|
+JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 "
|
|
|
|
+# java调试
|
|
|
|
+JAVA_DEBUG_OPTS=""
|
|
|
|
+if [ "$2" = "debug" ];then
|
|
|
|
+ JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8081 "
|
|
|
|
+fi
|
|
|
|
+# 内存配置
|
|
|
|
+JAVA_MEM_OPTS=""
|
|
|
|
+BITS=`java -version 2>&1 | grep -i 64-bit`
|
|
|
|
+if [ -n "$BITS" ]; then
|
|
|
|
+ JAVA_MEM_OPTS=" -server -Xms2g -Xmx2g -Xloggc:log/gc.log "
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+# 使用说明,用来提示输入参数
|
|
|
|
+usage() {
|
|
|
|
+ echo "Usage: sh boot [APP_NAME] [start|stop|restart|status]"
|
|
|
|
+ exit 1
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 检查程序是否在运行
|
|
|
|
+is_exist(){
|
|
|
|
+ # 获取PID
|
|
|
|
+ PID=$(ps -ef |grep ${APP_NAME} | grep -v $0 |grep -v grep |awk '{print $2}')
|
|
|
|
+ # -z "${pid}"判断pid是否存在,如果不存在返回1,存在返回0
|
|
|
|
+ if [ -z "${PID}" ]; then
|
|
|
|
+ # 如果进程不存在返回1
|
|
|
|
+ return 1
|
|
|
|
+ els
|
|
|
|
+ # 进程存在返回0
|
|
|
|
+ return 0
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 定义启动程序函数
|
|
|
|
+start(){
|
|
|
|
+ is_exist
|
|
|
|
+ if [ $? -eq "0" ]; then
|
|
|
|
+ echo "${APP_NAME} is already running, PID=${PID}"
|
|
|
|
+ else
|
|
|
|
+ nohup java -jar $JAVA_PATH_OPTS $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS ${APP_NAME} >> ${STDOUT_FILE} 2>&1 &
|
|
|
|
+ PID=$(echo $!)
|
|
|
|
+ echo "${APP_NAME} start success, PID=$!"
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 停止进程函数
|
|
|
|
+stop(){
|
|
|
|
+ is_exist
|
|
|
|
+ if [ $? -eq "0" ]; then
|
|
|
|
+ kill -9 ${PID}
|
|
|
|
+ # 检测是否停止
|
|
|
|
+ COUNT=1
|
|
|
|
+ while [ $COUNT -eq 1 ]
|
|
|
|
+ do
|
|
|
|
+ echo -e ".\c"
|
|
|
|
+ sleep 1
|
|
|
|
+ is_exist
|
|
|
|
+ if [ -z "${PID}" ]; then
|
|
|
|
+ COUNT=0
|
|
|
|
+ echo "${APP_NAME} process stop"
|
|
|
|
+ fi
|
|
|
|
+ done
|
|
|
|
+ else
|
|
|
|
+ echo "There is not the process of ${APP_NAME}"
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 重启进程函数
|
|
|
|
+restart(){
|
|
|
|
+ stop
|
|
|
|
+ start
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+# 查看进程状态
|
|
|
|
+status(){
|
|
|
|
+ is_exist
|
|
|
|
+ if [ $? -eq "0" ]; then
|
|
|
|
+ echo "${APP_NAME} is running, PID=${PID}"
|
|
|
|
+ else
|
|
|
|
+ echo "There is not the process of ${APP_NAME}"
|
|
|
|
+ fi
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+case $1 in
|
|
|
|
+"start")
|
|
|
|
+ start
|
|
|
|
+ ;;
|
|
|
|
+"stop")
|
|
|
|
+ stop
|
|
|
|
+ ;;
|
|
|
|
+"restart")
|
|
|
|
+ restart
|
|
|
|
+ ;;
|
|
|
|
+"status")
|
|
|
|
+ status
|
|
|
|
+ ;;
|
|
|
|
+ *)
|
|
|
|
+ usage
|
|
|
|
+ ;;
|
|
|
|
+esac
|
|
|
|
+exit 0
|