Shell中提交了一个脚本,进程号已经不知道了,但是需要kill掉这个进程,怎么操作?

ssh $i "ps -ef | grep XXX | grep -v grep |awk '{print $2}' | xargs kill"

实际上就是根据XXX关键字搜索某一类进程PID然后干掉他 ,即批量杀死包含某个关键字的进程

例如:搜索含有spark关键字的进程PID

[root@bigdata-1 phm]# ps -ef | grep spark | grep -v grep |awk '{print $2}' 
12978
17073

本问题的实质就是按照shell脚本中的任务名称关键字搜索出来,并打印出进程id然后kill掉。

脚本中关键术语解释:

  • 管道符"|"用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。
  • "ps -ef" 是linux里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep spark"的输入。
  • "grep spark" 的输出结果是,所有含有关键字"spark"的进程。
  • "grep -v grep" 是在列出的进程中去除含有关键字"grep"的进程。
  • "awk '{print $2}" 是打印将过滤后的行的第二列,第二列正好是进程号PID。
  • "xargs kill -9" 中的 xargs 命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程。

注意:该命令是杀掉的指定参数(关键词)的一类进程(多个)或运行指定参数命令的进程。

另外该命令还可以这样写:

ps -ef|grep spark|grep -v grep|cut -c 9-15|xargs kill -9

awk '{print $2}'换成cut -c 9-15,不过建议用awk比较直观

[root@bigdata-1 phm]# ps -ef|grep spark|grep -v grep|cut -c 9-15
 12978
 17073

欢迎关注石榴姐公众号"我的SQL呀",关注我不迷路

 

 

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值