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