#!/usr/bin/env bash ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" RUN_DIR="$ROOT/run" LOG_DIR="$ROOT/logs" BACKEND_PID="$RUN_DIR/backend.pid" FRONTEND_PID="$RUN_DIR/frontend.pid" BACKEND_PORT=8010 FRONTEND_PORT=5174 FRONTEND_DEV_PORT=5175 # prod:build + vite preview @5174;dev:vite dev @5175 FRONTEND_MODE="${FRONTEND_MODE:-prod}" vite_project_pgrep() { pgrep -f "$ROOT/frontend/node_modules/.bin/vite" 2>/dev/null || true } mkdir -p "$RUN_DIR" "$LOG_DIR" is_running() { local pid_file="$1" [[ -f "$pid_file" ]] && kill -0 "$(cat "$pid_file")" 2>/dev/null } stop_pid_file() { local pid_file="$1" local name="$2" if [[ -f "$pid_file" ]]; then local pid pid="$(cat "$pid_file")" if kill -0 "$pid" 2>/dev/null; then kill "$pid" 2>/dev/null || true sleep 1 kill -9 "$pid" 2>/dev/null || true echo "已停止 $name (PID $pid)" fi rm -f "$pid_file" fi }