79 lines
1.8 KiB
Bash
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
|