#!/bin/bash # 开始时间 时间戳 startTime=$(date +'%Y-%m-%d %H:%M:%S') # 接口项目站点路径(目录按照各自配置) APP_PATH=$(echo "/application/mushroom-shop-test/console-server" | tr -d '\r') # jar 包文件名称 APP_NAME=$(echo "$APP_PATH/Crmeb-admin.jar" | tr -d '\r') # 日志文件名称 LOG_FILE="$APP_PATH/crmeb_out.log" # 启动环境 APP_YML="--spring.profiles.active=beta" # 删除旧日志文件 rm -f "$LOG_FILE" echo "开始停止 Crmeb 项目进程" # 查询进程,并杀掉当前 jar/java 程序 pid=$(ps -ef | grep "$APP_NAME" | grep -v "grep" | awk '{print $2}') if [ "$pid" ]; then echo "发现进程 PID: $pid" kill "$pid" echo "Crmeb 项目进程已终止" fi sleep 2 # 判断 jar 包文件是否存在 if [ -e "$APP_NAME" ]; then echo '文件存在,开始启动程序...' # 启动 jar 包,指向日志文件 nohup java -jar "$APP_NAME" $APP_YML > "$LOG_FILE" 2>&1 & echo "正在发布中,请稍后......" sleep 20s # 检测日志 while [ -f "$LOG_FILE" ]; do success=$(grep "Started CrmebAdminApplication in " "$LOG_FILE" || true) if [[ "$success" != "" ]]; then echo "Crmeb 启动成功" break fi fail=$(grep "Fail" "$LOG_FILE" || true) if [[ "$fail" != "" ]]; then echo "项目启动失败" tail -f "$LOG_FILE" break fi sleep 1s done else echo "$APP_NAME 文件不存在,请检查。" fi # 计算运行时间 endTime=$(date +'%Y-%m-%d %H:%M:%S') startSecond=$(date --date="$startTime" +%s) endSecond=$(date --date="$endTime" +%s) total=$((endSecond - startSecond)) echo "本次运行时间: $total 秒" echo "当前时间: $endTime" # 实时展示日志 echo "显示实时日志,请按 Ctrl+C 停止查看..." tail -f "$LOG_FILE"