一句话杀死正在执行中的脚本

有没有遇到过脚本跑得肆无忌惮的根本停不下来,只能用重启的办法,因为单纯的kill就根本杀不掉脚本进程。

我尝试过ps出所有sh的进程,然后kill -9 后面跟一大串ps出来的进程号,结果杀掉进程了。这样做好使但是费力。

于是,想到写个sh循环处理进程,但是每次杀进程的话都要要把该sh push到手机里,然后shell下面用sh命令运行它,才能杀掉脚本进程。这步骤真是太繁琐。

 

一、下面是杀进程的sh脚本

#!/bin/sh
#根据进程名杀死进程
processname='sh'
PROCESS=`ps -ef|grep $processname|grep -v grep|grep -v PPID|grep -v mca|awk '{ print $2}'`
for i in $PROCESS
   do
   echo "Kill the $1 process [ $i ]"
   kill -9 $i
 done

 

二、别止步啊,有简单的办法,下面,一句话代替了如上繁琐的步骤,轻松杀死脚本的进程:

ps -ef | grep sh | grep -v grep | grep -v mca |awk '{print $2}' | xargs kill -9

以下是参数解释:

ps -ef 表示查看全格式的全部进程。此处用-A也行:显示所有程序

grep 是过滤

grep -v 是反过滤,就是不要把它顾虑出来

print 是打印

$2 是第二列,也就是进程的ID

awk 是对于文件中一行行的独处来执行操作 。

awk '{print $2}' 是把每一行的第二列(进程ID)打印出来

| xargs 是将"|" 前面获取到的进程号通过空格分割,传递给kill -9,将这些进程全部杀死

 

三、还有更简单的,在shell下面输入命令:

pkill sh

pkill是杀死所有sh的文件。

以上pkill sh是杀掉在adb里用sh命令跑起来的脚本。如果是用自己开发的android工具跑起来的脚本,且用这个pkill sh命令无法删除的话,那么就可以pkill杀掉跑脚本的工具的包名,假设包名含有点mca的话,则adb shell pkill mca。

 

完。

 

 

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值