startFront.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #!/bin/bash
  2. #开始时间 时间戳
  3. startTime=`date +'%Y-%m-%d %H:%M:%S'`
  4. #接口项目站点路径(目录按照各自配置)
  5. APP_PATH=/www/wwwroot/api.java.crmeb.net
  6. #jar包文件名称
  7. APP_NAME=$APP_PATH/Crmeb-front.jar
  8. #日志文件名称
  9. LOG_FILE=$APP_PATH/crmeb_out.log
  10. #启动环境 # 如果需要配置数据和redis,请在 application-prod.yml中修改, 用jar命令修改即可
  11. APP_YML=--spring.profiles.active=prod
  12. #数据库配置
  13. rm -rf $LOG_FILE
  14. echo "开始停止 Crmeb 项目进程"
  15. #查询进程,并杀掉当前jar/java程序
  16. pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
  17. if [ $pid ];then
  18. echo "pid: $pid"
  19. kill -9 $pid
  20. echo "Crmeb 项目进程进程终止成功"
  21. fi
  22. sleep 2
  23. #判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  24. if test -e $APP_NAME;then
  25. echo '文件存在,开始启动此程序...'
  26. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件 --spring.profiles.active=prod 启动 prod环境
  27. nohup java -jar $APP_NAME $APP_YML > crmeb_out.log 2>&1 &
  28. echo "正在发布中,请稍后......"
  29. sleep 10s
  30. #通过检测日志来判断
  31. while [ -f $LOG_FILE ]
  32. do
  33. success=`grep "Started CrmebFrontApplication in " $LOG_FILE`
  34. if [[ "$success" != "" ]]
  35. then
  36. # echo "Crmeb start ........."
  37. break
  38. else
  39. # echo "Crmeb Running ......."
  40. sleep 1s
  41. fi
  42. # echo "开始检测启动失败标记"
  43. fail=`grep "Fail" $LOG_FILE`
  44. if [[ "$fail" != "" ]]
  45. then
  46. echo "项目启动失败"
  47. tail -f $LOG_FILE
  48. break
  49. else
  50. # echo "Crmeb Running ......."
  51. sleep 1s
  52. fi
  53. done
  54. echo "Crmeb Started Success"
  55. endTime=`date +'%Y-%m-%d %H:%M:%S'`
  56. startSecond=$(date --date="$startTime" +%s);
  57. endSecond=$(date --date="$endTime" +%s);
  58. total=$((endSecond-startSecond))
  59. # shellcheck disable=SC2027
  60. echo "本次运行时间: "$total"s"
  61. # shellcheck disable=SC2086
  62. echo "当前时间:"$endTime
  63. else
  64. echo '$APP_NAME 文件不存在,请检查。'
  65. fi
  66. #在 $APP_NAME 同级目录下运行 ./startAdmin.sh 命令即可启动项目。