stopBrowser.sh 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #!/bin/bash
  2. # 检查是否提供了进程组名称参数
  3. if [ $# -eq 0 ]; then
  4. echo "错误:请提供进程组名称作为参数,例如:./stop_browser.sh my-group"
  5. exit 1
  6. fi
  7. for arg in "$@"; do
  8. if [[ "$arg" =~ ^--vtm_browser_type=(.*)$ ]]; then
  9. vtm_browser_type="${BASH_REMATCH[1]}"
  10. echo "浏览器类型: $vtm_browser_type"
  11. break # 找到后退出循环
  12. fi
  13. done
  14. if [[ -z "$vtm_browser_type" ]]; then
  15. echo "未指定浏览器类型"
  16. fi
  17. GROUP_NAME=$vtm_browser_type
  18. # 通过 PGID 关闭(推荐)
  19. if [ -f /tmp/$GROUP_NAME.pgid ]; then
  20. PGID=$(cat /tmp/$GROUP_NAME.pgid)
  21. kill -15 -$PGID 2>/dev/null # 终止整个进程组
  22. sleep 1
  23. if ps -o pgid= | grep -q $PGID; then
  24. kill -9 -$PGID
  25. fi
  26. rm -rf /tmp/$GROUP_NAME.pgid
  27. fi
  28. # 清理 cgroup(如果存在)
  29. if command -v cgdelete &> /dev/null; then
  30. sudo cgdelete cpu,memory:"$GROUP_NAME" 2>/dev/null
  31. fi
  32. echo "UOS Browser 已终止"
  33. exit $?