51 lines
1.1 KiB
Bash
Executable File
51 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
BACKEND_DIR="$ROOT_DIR/backend"
|
|
FRONTEND_DIR="$ROOT_DIR/frontend"
|
|
|
|
cleanup() {
|
|
echo ""
|
|
echo "[INFO] 正在停止所有服务..."
|
|
if [[ -n "${BACKEND_PID:-}" ]]; then
|
|
kill "$BACKEND_PID" 2>/dev/null || true
|
|
wait "$BACKEND_PID" 2>/dev/null || true
|
|
fi
|
|
if [[ -n "${FRONTEND_PID:-}" ]]; then
|
|
kill "$FRONTEND_PID" 2>/dev/null || true
|
|
wait "$FRONTEND_PID" 2>/dev/null || true
|
|
fi
|
|
echo "[OK] 已停止"
|
|
exit 0
|
|
}
|
|
|
|
trap cleanup INT TERM
|
|
|
|
# 启动后端
|
|
echo "[INFO] 启动后端服务..."
|
|
cd "$BACKEND_DIR"
|
|
./start-dev.sh &
|
|
BACKEND_PID=$!
|
|
echo "[OK] 后端 PID: $BACKEND_PID"
|
|
|
|
# 等待后端启动
|
|
sleep 2
|
|
|
|
# 启动前端
|
|
echo "[INFO] 启动前端服务..."
|
|
cd "$FRONTEND_DIR"
|
|
npm run dev &
|
|
FRONTEND_PID=$!
|
|
echo "[OK] 前端 PID: $FRONTEND_PID"
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo " 服务已启动"
|
|
echo " 后端: http://localhost:8000"
|
|
echo " 前端: http://localhost:3000"
|
|
echo " 按 Ctrl+C 停止所有服务"
|
|
echo "========================================="
|
|
|
|
wait
|