59 lines
1.6 KiB
Bash
Executable File
59 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
# Funstat MCP SSE 服务器 - 生产启动脚本
|
|
|
|
set -e
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
# 停止旧实例
|
|
echo "🛑 停止旧服务器..."
|
|
pkill -f "funstat_mcp/server.py" 2>/dev/null || true
|
|
sleep 2
|
|
|
|
# 确保 session 文件没有被锁定
|
|
if lsof /Users/lucas/telegram_sessions/funstat_bot.session 2>/dev/null; then
|
|
echo "⚠️ Session 文件被占用,强制终止..."
|
|
pkill -9 -f "funstat_mcp/server.py" || true
|
|
sleep 2
|
|
fi
|
|
|
|
# 启动新服务器
|
|
echo "🚀 启动新服务器..."
|
|
python3 server.py > /tmp/funstat_sse.log 2>&1 &
|
|
SERVER_PID=$!
|
|
|
|
# 等待启动
|
|
sleep 3
|
|
|
|
# 验证启动
|
|
if ps -p $SERVER_PID > /dev/null; then
|
|
echo "✅ 服务器已启动 (PID: $SERVER_PID)"
|
|
echo "📡 SSE 端点: http://127.0.0.1:8094/sse"
|
|
echo "📋 日志文件: /tmp/funstat_sse.log"
|
|
|
|
# 测试端点
|
|
echo ""
|
|
echo "🧪 测试端点..."
|
|
if curl -s -o /dev/null -w "%{http_code}" -H 'Accept: text/event-stream' http://127.0.0.1:8094/sse | grep -Eq "200|204|206"; then
|
|
echo "✅ GET /sse 测试通过"
|
|
else
|
|
echo "❌ GET /sse 测试失败"
|
|
fi
|
|
|
|
if curl -s -o /dev/null -w "%{http_code}" -X POST http://127.0.0.1:8094/sse -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{}' | grep -q "200"; then
|
|
echo "✅ POST /sse 测试通过"
|
|
else
|
|
echo "❌ POST /sse 测试失败"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📊 服务器状态:"
|
|
echo " 进程ID: $SERVER_PID"
|
|
echo " 监听地址: http://127.0.0.1:8094"
|
|
echo " 日志: tail -f /tmp/funstat_sse.log"
|
|
else
|
|
echo "❌ 服务器启动失败!"
|
|
echo "查看日志: tail -50 /tmp/funstat_sse.log"
|
|
exit 1
|
|
fi
|