美文网首页
杀死进程树

杀死进程树

作者: millerix | 来源:发表于2018-06-20 10:35 被阅读0次
function getchld_kill()
{
        if [[ -z "$1" ]];
        then
                echo "arguemnt 1 should be a number";
                exit;
        fi
        local child
        local father=$1
#        echo  "father: ${father}"
        local childs=$(ps -ef | awk -v father=$father 'BEGIN{ ORS=" "; } $3==father{ print $2; }')
#        echo "childs: " ${childs[*]}
        if [[ ${#childs[@]} -ne 0 && -n "${childs[0]}" ]];
        then
                for child in ${childs[@]}
                do
#                       echo child:${child}
                        getchld_kill ${child}
                done
                echo "killing the father: ${father}"
                kill -9 ${father}
        else
                echo "killing myself pid:${father}"
                kill -9 ${father}
                return
        fi
}

getchld_kill $1

使用递归调用实现了树的深度优先遍历:
递归条件是 childs 数组不空, 且第一个元素非空( awk 在叶子上返回一个第一个元素是空的数组)
base line condition 设置在叶子进程上进行递归返回.
getchld_kill 的参数是树根进程.

相关文章

  • 杀死进程树

    使用递归调用实现了树的深度优先遍历:递归条件是 childs 数组不空, 且第一个元素非空( awk 在叶子上返回...

  • Mongod服务器出现端口占用

    查看进程 杀死进程

  • 每天一个Linux命令之killall

    killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程P...

  • shell 杀死指定端口的进程

    查询所在端口进程 杀死指定ID进程 杀死指定端口进程 PS:测试环境:Ubuntu 14.04.5 LTS

  • Linux 命令

    1.查看进程+杀死进程查看进程命令:ps -aux杀死进程命令:$kill -s 9 PID(-s 9 制定了...

  • linux使用

    杀死进程

  • Windows杀死进程

    端口被占用,需要杀死进程,先查找进程,再结束进程。 方式一:根据进程父ID杀死进程 查找被占用的端口 netsta...

  • macbook pro 16 破音

    杀死 coreaudiod 进程

  • Android进程保活之一个像素保活

    Android 进程保活分为如下两种情况: 提高进程优先级,降低进程被杀死的概率 在进程被杀死后,进行拉活 进程的...

  • 2020-03-19 ubuntu基础操作

    复制文件cp [选项] 源文件 目标文件 .sh文件的运行sh xx.sh 查看进程杀死进程ps杀死进程kill ...

网友评论

      本文标题:杀死进程树

      本文链接:https://www.haomeiwen.com/subject/srmtyftx.html