2025-01-08 16:41:59 +08:00

79 lines
1.8 KiB
Bash

#!/bin/bash
# 开始时间 时间戳
startTime=$(date +'%Y-%m-%d %H:%M:%S')
# 接口项目站点路径(目录按照各自配置)
APP_PATH="/application/mushroom-shop-test/h5-server"
# jar 包文件名称
APP_NAME="$APP_PATH/Crmeb-front.jar"
# 日志文件名称
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 [ -n "$pid" ]; then
echo "发现进程 PID: $pid"
for p in $pid; do
kill "$p"
echo "已终止 PID: $p"
done
echo "Crmeb 项目进程已终止"
else
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 10s
# 检测日志
while [ -f "$LOG_FILE" ]; do
success=$(grep "Started CrmebFrontApplication in " "$LOG_FILE" || true)
if [[ -n "$success" ]]; then
echo "Crmeb 启动成功"
break
fi
fail=$(grep "Fail" "$LOG_FILE" || true)
if [[ -n "$fail" ]]; then
echo "项目启动失败"
tail -f "$LOG_FILE"
exit 1
fi
sleep 1s
done
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"
else
echo "$APP_NAME 文件不存在,请检查。"
fi