39 lines
1.1 KiB
Bash
39 lines
1.1 KiB
Bash
#!/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 |