diff --git a/deploy.sh b/deploy.sh index 340797f..9d41a4b 100644 --- a/deploy.sh +++ b/deploy.sh @@ -453,18 +453,20 @@ do_deploy() { echo "$TARGET_VERSION" > "${DEPLOY_DIR}/data/version.ini" print_success "版本写入: ${TARGET_VERSION}" - # ----- 检查 frpc 子进程 ----- + # ----- 检查 frpc 子进程(基于 PID 文件)----- print_step "检查 frpc 状态..." sleep 3 - if docker ps --format '{{.Names}}' | grep -q "^frpc-console$"; then - if docker exec frpc-console ps aux 2>/dev/null | grep -q "[f]rpc -c"; then - print_success "frpc 进程运行正常" + + PID_FILE="${DEPLOY_DIR}/data/frpc.pid" + if [ -f "$PID_FILE" ]; then + PID=$(cat "$PID_FILE" 2>/dev/null | tr -d ' \n') + if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then + print_success "frpc 进程运行正常 (PID: $PID)" else - print_warn "frpc 进程未运行(可能配置为空,请在 WebUI 中导入 TOML)" + print_warn "frpc 进程未运行(PID 文件存在但进程已退出,可能配置为空)" fi else - print_error "frpc-console 容器未运行" - exit 1 + print_warn "frpc 进程未运行(PID 文件不存在,请导入 TOML 后重试)" fi # ----- 验证数据库 -----