91 lines
2.3 KiB
Bash
91 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
# 项目名称
|
|
SERVER_NAME="${project.artifactId}"
|
|
|
|
# jar名称
|
|
JAR_NAME="${project.build.finalName}.jar"
|
|
|
|
# 进入bin目录
|
|
cd `dirname $0`
|
|
# bin目录绝对路径
|
|
BIN_DIR=`pwd`
|
|
# 返回到上一级项目根目录路径
|
|
cd ..
|
|
# 打印项目根目录绝对路径
|
|
# `pwd` 执行系统命令并获得结果
|
|
DEPLOY_DIR=`pwd`
|
|
|
|
# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
|
|
# 如果指定的是目录,spring则会读取目录中的所有配置文件
|
|
CONF_DIR=$DEPLOY_DIR/config
|
|
# 应用的端口号
|
|
SERVER_PORT=1157
|
|
|
|
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
|
|
if [ "$1" = "status" ]; then
|
|
if [ -n "$PIDS" ]; then
|
|
echo "The $SERVER_NAME is running...!"
|
|
echo "PID: $PIDS"
|
|
exit 0
|
|
else
|
|
echo "The $SERVER_NAME is stopped"
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
if [ -n "$PIDS" ]; then
|
|
echo "ERROR: The $SERVER_NAME already started!"
|
|
echo "PID: $PIDS"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -n "$SERVER_PORT" ]; then
|
|
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
|
|
if [ $SERVER_PORT_COUNT -gt 0 ]; then
|
|
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 项目日志输出绝对路径
|
|
LOGS_DIR=$DEPLOY_DIR/logs
|
|
# 如果logs文件夹不存在,则创建文件夹
|
|
if [ ! -d $LOGS_DIR ]; then
|
|
mkdir $LOGS_DIR
|
|
fi
|
|
|
|
# JVM Configuration
|
|
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
|
|
|
|
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
|
|
|
|
|
|
# 加载外部log文件的配置
|
|
LOG_IMPL_FILE=logback-spring.xml
|
|
LOGGING_CONFIG=""
|
|
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
|
|
then
|
|
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
|
|
fi
|
|
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
|
|
echo -e "Starting the $SERVER_NAME ..."
|
|
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/$JAR_NAME >/dev/null 2>&1 &
|
|
|
|
COUNT=0
|
|
while [ $COUNT -lt 1 ]; do
|
|
echo "... "
|
|
sleep 1
|
|
if [ -n "$SERVER_PORT" ]; then
|
|
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
|
|
else
|
|
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
|
|
fi
|
|
if [ $COUNT -gt 0 ]; then
|
|
break
|
|
fi
|
|
done
|
|
|
|
echo "Service starting OK!"
|
|
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
|
|
echo "Service PID: $PIDS" |