linux中根据名称kill进程

时间:2022-04-14 14:16:17

shell函数如下:

# kill processes by name
kbn() {
line=`ps -a | grep $1`
arr=($line)
for((i=0;i<${#arr[*]};i=i+4)) // 根据实际情况调整
{
if [ -d /proc/${arr[i]} ]; then
kill -9 ${arr[i]}
fi
}
}

调用时执行

kbn redis-server

上面是一种比较精准的方法,只是不够优雅。另一种比较粗暴的方法,以关闭redis为例:

ps -a | grep redis | xargs kill -9

这种方法比较粗暴,会有一定的报错信息,可以用下面这种方法屏蔽报错信息:

ps -a | grep redis | xargs kill -9 2>/dev/null