Erlo

shell脚本杀掉指定进程下所有子进程(包括子进程的子进程)

2019-06-19 12:00:20 发布   155 浏览  
页面报错/反馈
收藏 点赞

搜索了网上好像并没有杀掉指定进程下所有子进程(包括子进程的子进程)的脚本,自己琢磨写了一版,虽说比较简单,但希望分享大家,帮助需要的人

#!/bin/sh
# 递归找到进程最底层子进程并杀除.
mainName=$1
echo "=====开始====="
#grep -v可以过滤掉grep的进程,但测试时有时会出现问题,所以加上获取第一行
mainId=`ps -ef |grep '${mainName}'|grep -v 'grep' |head -1|cut -c 9-15`
#去掉空格
mainId=`echo ${mainId}|sed 's/ //g'`
echo "mainId===${mainId}"
#查主进程下所有子进程 格式为main.sh(275)---children1.sh(27641)---sleep(27643)
pidLine=`pstree -p ${mainId}`
echo "pidLine===pidLine${pidLine}"
#取括号中的内容
pidLine=`echo $pidLine | awk 'BEGIN{ FS="(" ; RS=")" } NF>1 { print $NF }'`
#echo $pidLine
for pid in $pidLine
    do 
        echo "kill -9 ${pid}"
        kill -9 ${pid}
    done

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认