start.sh 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #!/bin/bash
  2. set -o nounset # 遇到没定义的变量报错后,终止继续执行脚本文件
  3. set -o errexit # 执行失败以后,终止继续执行脚本文件
  4. # 平滑关闭和启动 Spring Boot 应用
  5. # 给脚本增加执行权限
  6. # chmod +x start.sh
  7. # Jar包应用名称
  8. # ./bin/start.sh marketing-auth-server_test_20200514225829.jar
  9. # JAR_NAME=marketing-auth-server_test_20200514225829.jar
  10. # APPLICATION_NAME=marketing-auth-server
  11. JAR_NAME=$1
  12. APPLICATION_NAME=${JAR_NAME%%_*}
  13. 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'
  14. JAVA_OPTIONS=' --spring.profiles.active=dev --spring.config.location=file:./resources/ --logging.config=file:./resources/logback-spring.xml '
  15. echo "---------- ---------- 停止应用 ---------- ----------"
  16. . ./bin/stop.sh ${APPLICATION_NAME}
  17. echo "---------- ---------- 停止应用 ---------- ----------"
  18. echo -e "\n\n\n"
  19. echo "---------- ---------- 启动应用 ---------- ----------"
  20. echo '【'$APPLICATION_NAME'】服务正在启动... ...'
  21. # 调试CI/CD时,本地验证运行命令
  22. # 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
  23. # 非挂起方式启动应用,并且跟踪启动日志文件
  24. nohup java $JVM_OPTIONS -jar $JAR_NAME $JAVA_OPTIONS > /dev/null 2>&1 &
  25. # 将jar包启动对应的pid写入文件中,为停止时提供pid
  26. echo $APPLICATION_NAME '启动后的pid:' $!
  27. echo $! > ${APPLICATION_NAME}.pid
  28. sleep 5s
  29. echo "---------- ---------- 启动应用 ---------- ----------"