#!/bin/bash PORT=8060 echo "=== 停止端口 $PORT 上的 Go 服务 ===" # 直接查找监听 8060 端口的 Go 进程 GO_PID=$(ps aux | grep "go run cmd/main.go" | grep -v grep | awk '{print $2}') if [ -n "$GO_PID" ]; then echo "找到 Go 服务进程: $GO_PID" sudo kill -9 $GO_PID echo "Go 服务进程已终止" sleep 2 fi # 无论是否找到 Go 进程,都强制杀死占用端口的任何进程 echo "强制清理端口 $PORT..." sudo fuser -k $PORT/tcp 2>/dev/null || true # 使用多种方法确保端口释放 sudo pkill -f ":$PORT" 2>/dev/null || true # 等待端口释放 sleep 3 echo "=== 启动新的 Go 服务 ===" nohup go run cmd/main.go > ai_dianshang.log 2>&1 & # 验证启动 sleep 5 if ps aux | grep "go run cmd/main.go" | grep -v grep > /dev/null; then echo "✅ Go 服务启动成功" echo "📋 日志文件: ai_dianshang.log" echo "👀 查看日志: tail -f ai_dianshang.log" echo "🌐 服务地址: http://localhost:$PORT" else echo "❌ Go 服务启动失败,请检查日志" tail -n 20 ai_dianshang.log fi