Linux中通过 kill命令 杀死指定进程
一 杀死指定进程
现知道有一个curl线程正在运行,需要杀死
anggang@barry$ curl -y 30 -y 1 -m 300 -x 8.8.8.8:808 -o html_baidu http://www.baidu.com
% total % received % xferd average speed time time time current
dload upload total spent left speed
0 0 0 0 0 0 0 0 --:--:-- 0:00:21 --:--:-- 0
ps -ef 查询运行进程
yanggang@barry$ ps -ef | grep curl
yanggang 10992 25473 0 14:11 pts/0 00:00:00 curl -y 30 -y 1 -m 300 -x 8.8.8.8:808 -o html_baidu http://www.baidu.com
yanggang 18591 11235 0 14:11 pts/1 00:00:00 grep --color=auto curl
ps -ef 查询并过滤进程id:
yanggang@barry$ ps -ef | grep curl
yanggang 9201 25473 0 14:13 pts/0 00:00:00 curl -y 30 -y 1 -m 300 -x 8.8.8.8:808 -o html_baidu http://www.baidu.com
yanggang 13612 11235 0 14:13 pts/1 00:00:00 grep --color=auto curl
yanggang@barry$ ps -ef | grep curl | grep -v grep | cut -c 15-20
25473
ps -ef 查询并过滤进程id,并杀死该进程:
yanggang@barry$ ps -ef | grep curl
yanggang 13390 28367 0 14:15 pts/3 00:00:00 curl -y 30 -y 1 -m 300 -x 8.8.8.8:808 -o html_baidu http://www.baidu.com (杀死进程前)
yanggang 16946 11235 0 14:15 pts/1 00:00:00 grep --color=auto curl
yanggang@barry$ ps -ef | grep curl | grep -v grep | cut -c 15-20
28367
yanggang@barry$ ps -ef | grep curl | grep -v grep | cut -c 15-20 | xargs kill -9
yanggang@barry$ ps -ef | grep curl
yanggang 13072 11235 0 14:16 pts/1 00:00:00 grep --color=auto curl (杀死进程后,无此进程)
或者:
kill -9 `ps -ef|grep “processname” | grep -v "grep"|awk '{print $2} '`
二 杀死批量进程
for pid in $(ps -ef | grep curl | grep -v grep | cut -c 15-20); do (获取进程id数组,并循环杀死所有进程) echo $pid kill -9 $pid done
贴出源码:
# !/bin/sh for pid in $(ps -ef | grep curl | grep -v grep | cut -c 15-20); do echo $pid kill -9 $pid done #while [ ! -z $(ps -ef | grep curl | grep -v grep | cut -c 9-15) ] #do # ps -ef | grep curl | grep -v grep | cut -c 15-20 | xargs kill -9 # ps -ef | grep curl | grep -v grep | cut -c 9-15 | xargs kill -9 #done