#!/bin/bash # 强力清理 knowledge-agent 相关进程 echo "🔍 查找 knowledge-agent 相关进程..." # 查找所有可能的进程 PROCESSES=$(ps aux | grep -E "(python.*agent\.py|uvicorn.*agent|knowledge-agent|agent\.py|multiprocessing\.spawn)" | grep -v grep | awk '{print $2}') if [ -z "$PROCESSES" ]; then echo "✅ 没有找到 knowledge-agent 相关进程" else echo "📋 找到以下进程:" ps aux | grep -E "(python.*agent\.py|uvicorn.*agent|knowledge-agent|agent\.py|multiprocessing\.spawn)" | grep -v grep echo "" echo "🛑 开始强制终止进程..." # 强制终止所有找到的进程 for pid in $PROCESSES; do echo "强制终止进程 $pid..." kill -9 $pid 2>/dev/null done # 等待1秒 sleep 1 # 再次检查 REMAINING=$(ps aux | grep -E "(python.*agent\.py|uvicorn.*agent|knowledge-agent|agent\.py|multiprocessing\.spawn)" | grep -v grep | awk '{print $2}') if [ ! -z "$REMAINING" ]; then echo "⚠️ 仍有进程未终止,再次强制终止..." for pid in $REMAINING; do echo "再次强制终止进程 $pid..." kill -9 $pid 2>/dev/null done fi echo "✅ 进程清理完成" fi # 清理PID文件 if [ -f "/tmp/knowledge-agent.pid" ]; then echo "🗑️ 清理PID文件..." rm -f /tmp/knowledge-agent.pid fi # 检查端口占用 echo "🔍 检查端口8080占用情况..." PORT_PROCESS=$(lsof -ti:8080 2>/dev/null) if [ ! -z "$PORT_PROCESS" ]; then echo "⚠️ 端口8080仍被占用,进程ID: $PORT_PROCESS" echo "强制终止占用端口的进程..." kill -9 $PORT_PROCESS 2>/dev/null echo "✅ 端口已释放" else echo "✅ 端口8080已释放" fi echo "🏁 清理完成"