Shell中用一条命令根据服务名来杀进程

 无论是Shell脚本处理或日常操作中,让我们根据服务名来杀进程,我们一般通用的做法

1. 先用ps -ef 或 ps aux来根据服务名来找到pid号

2. 然后使用kill -9 PID来杀进程

这样的杀个进程要两个步骤,耗时很大,而且有的进程号不只1个,有的时候是很多个,一个个执行手工,分别执行执行两个命令的话,耗时,耗力,有的时候还很容易出错。 这里有个合二为一的方法。

[root@local ~#] ps -ef | grep http | grep -v grep | awk '{print $2}' | xargs kill -9
  • ps -ef 或 ps aux 这两者是最多的来查看静态的进程命令
  • grep http    这里以http为例
  • grep -v grep   将grep自身的进程排除在外,-v参数,除..之外
  • awk '{print $2}'    获得进程号
  • xargs命令会将前面命令的输出结果(pid)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程

这里可以写成一个小脚本

[root@localhost ~#] ./kill_process.sh http
[root@localhost ~#] vim kill_process.sh
#!/bin/bash

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

如果需要定时去杀进程的话,比如说只要找到就杀,每10分钟去找一次,只需要在脚本修改一下

[root@localhost ~#] ./kill_process.sh http
[root@localhost ~#] vim kill_process.sh
#!/bin/bash

while [ 1 ]
do
    ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
    sleep 600
done 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值