详解如何利用shell脚本查找进程,并杀掉
0赞完整的脚本命令如下:
#!/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权限。
