force_kill_processes.sh 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. # 强制清理所有相关进程的脚本
  3. echo "🔍 查找所有相关进程..."
  4. # 查找所有相关进程
  5. PROCESSES=$(ps aux | grep -E "(python.*agent|knowledge-agent|gemini|image_identifier|video_identifier)" | grep -v grep | awk '{print $2}')
  6. if [ -z "$PROCESSES" ]; then
  7. echo "✅ 没有找到相关进程"
  8. exit 0
  9. fi
  10. echo "📋 找到以下进程:"
  11. ps aux | grep -E "(python.*agent|knowledge-agent|gemini|image_identifier|video_identifier)" | grep -v grep
  12. echo ""
  13. echo "🛑 开始强制终止进程..."
  14. # 首先尝试优雅终止
  15. for pid in $PROCESSES; do
  16. echo "正在终止进程 $pid..."
  17. kill -TERM $pid 2>/dev/null
  18. done
  19. # 等待3秒
  20. sleep 3
  21. # 检查是否还有进程存在
  22. REMAINING=$(ps aux | grep -E "(python.*agent|knowledge-agent|gemini|image_identifier|video_identifier)" | grep -v grep | awk '{print $2}')
  23. if [ ! -z "$REMAINING" ]; then
  24. echo "⚠️ 仍有进程未终止,使用强制终止..."
  25. # 强制终止
  26. for pid in $REMAINING; do
  27. echo "强制终止进程 $pid..."
  28. kill -9 $pid 2>/dev/null
  29. done
  30. # 再次等待
  31. sleep 2
  32. # 最终检查
  33. FINAL_CHECK=$(ps aux | grep -E "(python.*agent|knowledge-agent|gemini|image_identifier|video_identifier)" | grep -v grep | awk '{print $2}')
  34. if [ ! -z "$FINAL_CHECK" ]; then
  35. echo "❌ 仍有进程无法终止:"
  36. ps aux | grep -E "(python.*agent|knowledge-agent|gemini|image_identifier|video_identifier)" | grep -v grep
  37. echo "请手动检查这些进程"
  38. else
  39. echo "✅ 所有进程已强制终止"
  40. fi
  41. else
  42. echo "✅ 所有进程已优雅终止"
  43. fi
  44. # 清理PID文件
  45. if [ -f "/tmp/knowledge-agent.pid" ]; then
  46. echo "🗑️ 清理PID文件..."
  47. rm -f /tmp/knowledge-agent.pid
  48. fi
  49. echo "🏁 清理完成"