#!/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%%_*} JVM_OPTIONS=' -Dloader.path=. -Xms512m -Xmx1536m -XX:NewSize=512m -XX:MaxNewSize=1536m -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=1536m -XX:NewRatio=2 -XX:MaxTenuringThreshold=8 -XX:+DisableExplicitGC -Dfile.encoding=utf-8' JAVA_OPTIONS=' --spring.profiles.active=dev --spring.config.location=file:./resources/ --logging.config=file:./resources/logback-spring.xml ' echo "---------- ---------- 停止应用 ---------- ----------" . ./bin/stop.sh ${APPLICATION_NAME} echo "---------- ---------- 停止应用 ---------- ----------" echo -e "\n\n\n" echo "---------- ---------- 启动应用 ---------- ----------" echo '【'$APPLICATION_NAME'】服务正在启动... ...' # 调试CI/CD时,本地验证运行命令 # java -Dloader.path=. -jar yxl-1.0.0-SNAPSHOT.jar --spring.profiles.active=dev --spring.config.location=file:./resources/ --logging.config=file:./resources/logback-spring.xml # 非挂起方式启动应用,并且跟踪启动日志文件 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 "---------- ---------- 启动应用 ---------- ----------"