#!/bin/bash # HZHub Admin 前端项目停止脚本 PROJECT_NAME="hzhub-admin" 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 2 # 检查进程是否已停止 if ps -p "$PID" > /dev/null 2>&1; then echo "⚠️ 进程未响应,强制终止..." kill -9 "$PID" sleep 1 fi # 清理PID文件 rm -f "$PID_FILE" # Fallback: 如果端口仍被占用,尝试按端口关闭 if ss -tlnp 2>/dev/null | grep -q ':5666 '; then echo "⚠️ 端口5666仍被占用,尝试按端口清理..." fuser -k 5666/tcp 2>/dev/null sleep 1 fi echo "✅ 服务已停止"