#!/bin/bash
set -o nounset # 遇到没定义的变量报错后，终止继续执行脚本文件
set -o errexit # 执行失败以后，终止继续执行脚本文件

# 平滑关闭和启动 Spring Boot 应用
# 给脚本增加执行权限
# chmod +x start.sh

# Jar包应用名称
# ./bin/start.sh marketing-auth-server_test_20200514225829.jar
# JAR_NAME=marketing-auth-server_test_20200514225829.jar
# APPLICATION_NAME=marketing-auth-server
JAR_NAME=$1
APPLICATION_NAME=${JAR_NAME%%_*}

# 应用启动环境
SPRING_PROFILES_ACTIVE='dev'

# 应用启动后日志输出目录
LOG_PATH='./logs/log-info.log'

JVM_OPTIONS='-Dloader.path=./lib'
JAVA_OPTIONS=' --spring.profiles.active=dev --spring.config.location=file:./conf/ --logging.config=file:./conf/logback.xml'
#JAVA_OPTS='-Xms128m -Xmx512m -XX:NewSize=128m -XX:MaxNewSize=512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m -XX:NewRatio=2 -XX:MaxTenuringThreshold=8 -XX:+DisableExplicitGC'

# 应用端口
# SERVER_PORT='8080'
# echo nohup java -jar $JAVA_OPTIONS $JAR_NAME --server.port=$SERVER_PORT --spring.profiles.active=$SPRING_PROFILES_ACTIVE > /dev/null &
# nohup java -jar $JAVA_OPTIONS $JAR_NAME --server.port=$SERVER_PORT --spring.profiles.active=$SPRING_PROFILES_ACTIVE > /dev/null &



echo "---------- ---------- 停止应用 ---------- ----------"
. ./bin/stop.sh ${APPLICATION_NAME}
echo "---------- ---------- 停止应用 ---------- ----------"

echo -e "\n\n\n"

echo "---------- ---------- 启动应用 ---------- ----------"
echo '【'$APPLICATION_NAME'】服务正在启动... ...'



# 非挂起方式启动应用，并且跟踪启动日志文件
nohup java $JVM_OPTIONS -jar $JAR_NAME $JAVA_OPTIONS > /dev/null 2>&1 &

# 将jar包启动对应的pid写入文件中，为停止时提供pid
echo $APPLICATION_NAME '启动后的pid：' $!
echo $! > ${APPLICATION_NAME}.pid

sleep 5s
echo "---------- ---------- 启动应用 ---------- ----------"
