#!/bin/bash
# HZHub AI 后端服务停止脚本

PROJECT_NAME="hzhub-ai"
PROJECT_DIR="$(cd "$(dirname "$0")" && pwd)"
PID_FILE="$PROJECT_DIR/.pid"

echo "========================================="
echo "停止 $PROJECT_NAME 后端服务"
echo "========================================="

# 检查PID文件是否存在
if [ ! -f "$PID_FILE" ]; then
    echo "⚠️  未找到PID文件，服务可能未运行"
    exit 0
fi

PID=$(cat "$PID_FILE")

# 检查进程是否存在
if ! ps -p "$PID" > /dev/null 2>&1; then
    echo "⚠️  进程不存在 (PID: $PID)"
    rm -f "$PID_FILE"
    exit 0
fi

# 停止进程
echo "🛑 正在停止服务 (PID: $PID)..."
kill "$PID"

# 等待进程结束
sleep 3

# 检查进程是否已停止
if ps -p "$PID" > /dev/null 2>&1; then
    echo "⚠️  进程未响应，强制终止..."
    kill -9 "$PID"
    sleep 2
fi

# 清理PID文件
rm -f "$PID_FILE"

# Fallback: 如果端口仍被占用，尝试按端口关闭
if ss -tlnp 2>/dev/null | grep -q ':6039 '; then
    echo "⚠️  端口6039仍被占用，尝试按进程名清理..."
    pkill -f "HZHubAIApplication" 2>/dev/null
    sleep 2
fi

echo "✅ 服务已停止"