电子小白

详解如何利用shell脚本查找进程,并杀掉

0
阅读(5995)

完整的脚本命令如下:

#!/bin/bash
echo ===============================
echo cmd   : kill_process
echo author: walter.chen
echo email : walt_chen@163.com
echo ver   : 2011/06/02 11:33
echo ===============================
NAME=$1
echo $NAME
ID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`
IDNAME=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $8}'`
echo process ID   list: $ID
echo process NAME list: $IDNAME
echo "--start kill-------------"
for id in $ID
do
kill -9 $id
echo "killed $id"
done
echo "--kill_process finished!-"

首先利用ps -ef 枚举出所有进程,然后grep "$NAME"查找出含有关键字的进程;

并排除该脚本命令(grep -v "$0" )与GREP命令(grep -v "grep" );

提取进程ID(awk '{print $2}'),保存进程ID列表(`...`,注:使用的是~这个键;

然后根据ID列表,一一杀掉(KILL -9 $id).

至此,所有含关键字的进程都被杀掉。

DEMO: ./kill_process   key_word

注意是否需要ROOT权限。