linux shell 如何暴力杀进程并包括所有子进程

搜索大法,网上没找到合适的解决方案,集众家之长,形成最终方案,非常见谅,历史久远,参考文档未记录。

pstree $(cat /run/xxx.pid) -p | awk -F'[()]' '{for(i=0;i<=NF;i++)if($i~/(^[0-9])+/)print $i}' | xargs kill -9

关键思路是通过pstree -p参数获取指定进程id的所有子进程(包括自己),在用kill暴力结束。注意子进程还会有子子进程,网上处理方法主要是边界处理有问题,需要涵盖没子进程、有一个子进程、有多个子进程以及有子子进程的情况。

cat $(cat /run/xxx.pid) 是读取 xxx.ip 文件,里面记录了对应进程的id,这里可直接替换为自己的进程id。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值