#!/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 "✅ 服务已停止"