first commit
This commit is contained in:
102
go_backend/start_prod.sh
Normal file
102
go_backend/start_prod.sh
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
#########################################
|
||||
# AI小红书 Go 后端 - 生产环境启动脚本
|
||||
# 专用于生产环境快速部署
|
||||
#########################################
|
||||
|
||||
PORT=8070
|
||||
ENV="prod"
|
||||
LOG_FILE="ai_xhs_prod.log"
|
||||
|
||||
echo "=== 停止端口 $PORT 上的 Go 服务 ==="
|
||||
|
||||
# 方法1: 查找 go run 进程
|
||||
GO_PID=$(ps aux | grep "go run main.go" | grep -v grep | awk '{print $2}')
|
||||
|
||||
if [ -n "$GO_PID" ]; then
|
||||
echo "找到 Go 服务进程: $GO_PID"
|
||||
kill -9 $GO_PID 2>/dev/null
|
||||
echo "Go 服务进程已终止"
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# 方法2: 强制清理端口
|
||||
echo "强制清理端口 $PORT..."
|
||||
PORT_PID=$(lsof -ti:$PORT 2>/dev/null)
|
||||
if [ -n "$PORT_PID" ]; then
|
||||
echo "端口被进程 $PORT_PID 占用,正在终止..."
|
||||
kill -9 $PORT_PID 2>/dev/null
|
||||
fi
|
||||
|
||||
sudo fuser -k $PORT/tcp 2>/dev/null || true
|
||||
sudo pkill -f ":$PORT" 2>/dev/null || true
|
||||
|
||||
# 等待端口释放
|
||||
sleep 3
|
||||
|
||||
echo ""
|
||||
echo "=== 环境检查 ==="
|
||||
|
||||
# 检查 Go 环境
|
||||
if ! command -v go &> /dev/null; then
|
||||
echo "❌ 错误: 未检测到 Go 环境"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ Go 环境: $(go version)"
|
||||
|
||||
# 检查配置文件
|
||||
if [ ! -f "config/config.prod.yaml" ]; then
|
||||
echo "❌ 错误: 未找到生产环境配置文件"
|
||||
exit 1
|
||||
fi
|
||||
echo "✅ 配置文件: config/config.prod.yaml"
|
||||
|
||||
echo ""
|
||||
echo "=== 下载依赖 ==="
|
||||
go mod tidy
|
||||
|
||||
echo ""
|
||||
echo "=== 启动生产环境服务 ==="
|
||||
|
||||
# 设置环境变量
|
||||
export APP_ENV=prod
|
||||
|
||||
# 清空旧日志
|
||||
> $LOG_FILE
|
||||
|
||||
# 启动服务
|
||||
nohup go run main.go > $LOG_FILE 2>&1 &
|
||||
NEW_PID=$!
|
||||
|
||||
echo "✅ 服务已启动 (PID: $NEW_PID)"
|
||||
|
||||
# 验证启动
|
||||
echo ""
|
||||
echo "=== 启动验证 (等待 5 秒) ==="
|
||||
sleep 5
|
||||
|
||||
if ps -p $NEW_PID > /dev/null 2>&1; then
|
||||
echo "✅ Go 服务启动成功"
|
||||
echo "📋 日志文件: $LOG_FILE"
|
||||
echo "👀 查看日志: tail -f $LOG_FILE"
|
||||
echo "🌐 服务地址: http://localhost:$PORT"
|
||||
echo "🔍 进程PID: $NEW_PID"
|
||||
|
||||
# 检查端口监听
|
||||
if lsof -ti:$PORT > /dev/null 2>&1; then
|
||||
echo "✅ 端口 $PORT 监听正常"
|
||||
else
|
||||
echo "⚠️ 端口 $PORT 未监听,请检查日志"
|
||||
fi
|
||||
|
||||
# 显示最近日志
|
||||
echo ""
|
||||
echo "=== 最近日志 ==="
|
||||
tail -n 10 $LOG_FILE
|
||||
else
|
||||
echo "❌ Go 服务启动失败,请检查日志"
|
||||
echo ""
|
||||
tail -n 20 $LOG_FILE
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user