#!/bin/bash # Gitea Webhook Ambassador - 版本检查脚本 # 用于区分 Go 版本和 Python 版本 echo "🔍 检查 Gitea Webhook Ambassador 版本..." # 检查端口 8000 (Python 版本默认端口) echo "📡 检查端口 8000 (Python 版本)..." if lsof -i :8000 > /dev/null 2>&1; then PID=$(lsof -ti :8000) PROCESS=$(ps -p $PID -o comm= 2>/dev/null) echo "✅ 端口 8000 被占用 (PID: $PID, 进程: $PROCESS)" # 检查是否是 Python 进程 if echo "$PROCESS" | grep -q "python\|uvicorn"; then echo "🐍 检测到 Python 版本正在运行" # 尝试访问 Python 版本的 API if curl -s http://localhost:8000/api/health > /dev/null 2>&1; then echo "✅ Python 版本 API 响应正常" echo "🌐 访问地址: http://localhost:8000" echo "📊 仪表板: http://localhost:8000/dashboard" else echo "⚠️ Python 版本进程存在但 API 无响应" fi else echo "⚠️ 端口 8000 被其他进程占用" fi else echo "❌ 端口 8000 未被占用 (Python 版本未运行)" fi echo "" # 检查端口 8080 (Go 版本默认端口) echo "📡 检查端口 8080 (Go 版本)..." if lsof -i :8080 > /dev/null 2>&1; then PID=$(lsof -ti :8080) PROCESS=$(ps -p $PID -o comm= 2>/dev/null) echo "✅ 端口 8080 被占用 (PID: $PID, 进程: $PROCESS)" # 检查是否是 Go 进程 if echo "$PROCESS" | grep -q "gitea-webhook-ambassador"; then echo "🚀 检测到 Go 版本正在运行" # 尝试访问 Go 版本的 API if curl -s http://localhost:8080/health > /dev/null 2>&1; then echo "✅ Go 版本 API 响应正常" echo "🌐 访问地址: http://localhost:8080" else echo "⚠️ Go 版本进程存在但 API 无响应" fi else echo "⚠️ 端口 8080 被其他进程占用" fi else echo "❌ 端口 8080 未被占用 (Go 版本未运行)" fi echo "" # 检查 PID 文件 echo "📁 检查 PID 文件..." # Python 版本 PID 文件 PYTHON_PID_FILE="/home/nicolas/freeleaps-ops/apps/gitea-webhook-ambassador-python/service.pid" if [ -f "$PYTHON_PID_FILE" ]; then PYTHON_PID=$(cat "$PYTHON_PID_FILE") if ps -p $PYTHON_PID > /dev/null 2>&1; then echo "✅ Python 版本 PID 文件存在 (PID: $PYTHON_PID)" else echo "⚠️ Python 版本 PID 文件存在但进程不存在" fi else echo "❌ Python 版本 PID 文件不存在" fi # Go 版本 PID 文件 (如果存在) GO_PID_FILE="/home/nicolas/freeleaps-ops/apps/gitea-webhook-ambassador/service.pid" if [ -f "$GO_PID_FILE" ]; then GO_PID=$(cat "$GO_PID_FILE") if ps -p $GO_PID > /dev/null 2>&1; then echo "✅ Go 版本 PID 文件存在 (PID: $GO_PID)" else echo "⚠️ Go 版本 PID 文件存在但进程不存在" fi else echo "❌ Go 版本 PID 文件不存在" fi echo "" # 总结 echo "📊 总结:" echo "----------------------------------------" PYTHON_RUNNING=false GO_RUNNING=false # 检查 Python 版本 if lsof -i :8000 > /dev/null 2>&1; then PID=$(lsof -ti :8000) PROCESS=$(ps -p $PID -o comm= 2>/dev/null) if echo "$PROCESS" | grep -q "python\|uvicorn"; then PYTHON_RUNNING=true fi fi # 检查 Go 版本 if lsof -i :8080 > /dev/null 2>&1; then PID=$(lsof -ti :8080) PROCESS=$(ps -p $PID -o comm= 2>/dev/null) if echo "$PROCESS" | grep -q "gitea-webhook-ambassador"; then GO_RUNNING=true fi fi if [ "$PYTHON_RUNNING" = true ] && [ "$GO_RUNNING" = true ]; then echo "⚠️ 两个版本都在运行!" echo "🐍 Python 版本: http://localhost:8000" echo "🚀 Go 版本: http://localhost:8080" elif [ "$PYTHON_RUNNING" = true ]; then echo "✅ 当前运行: Python 版本" echo "🌐 访问地址: http://localhost:8000" elif [ "$GO_RUNNING" = true ]; then echo "✅ 当前运行: Go 版本" echo "🌐 访问地址: http://localhost:8080" else echo "❌ 没有检测到任何版本在运行" fi echo "----------------------------------------"