#!/bin/bash # 神射手 - 智能启动脚本(端口冲突检查 + 指定端口) # 端口: 3117(见 端口登记.md) # 用法: ./scripts/start.sh [--kill] # --kill 自动终止占用进程 set -e cd "$(dirname "$0")/.." PORT=3117 AUTO_KILL=false [[ "$1" == "--kill" ]] && AUTO_KILL=true # 检查端口是否被占用 check_port() { if lsof -i :$PORT >/dev/null 2>&1; then echo "⚠️ 端口 $PORT 已被占用:" lsof -i :$PORT echo "" if $AUTO_KILL; then echo "正在终止占用进程..." lsof -ti :$PORT | xargs kill -9 2>/dev/null || true sleep 2 else echo "解决方式:" echo " 1) 运行 ./scripts/start.sh --kill 自动终止后启动" echo " 2) 或手动执行: lsof -ti :$PORT | xargs kill -9" exit 1 fi fi } echo "=== 神射手 启动 ===" echo "端口: $PORT | 访问: http://localhost:$PORT" echo "" check_port # 优先 pnpm,其次 npm if command -v pnpm &>/dev/null; then pnpm dev elif command -v npm &>/dev/null; then npm run dev else echo "❌ 未找到 pnpm 或 npm" exit 1 fi