startAdmin.sh 2.2 KB

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