美文网首页
杀死指定进程

杀死指定进程

作者: NowhereToRun | 来源:发表于2018-03-14 13:38 被阅读127次

在Mac下调试,启动server后想关闭,如果仅仅是Ctrl + Z或者Ctrl + C,在不退出当前shell的情况下,进程其实还是一直存在的,每次手动查进程号再kill掉有点麻烦,于是写了个简单的脚本,每次批量的全部杀掉。

#! /bin/sh 
if [ $# == 0 ];then
    echo "缺少程序名称" 
    exit 2
fi
processName=$1
pidArr=$(ps c | grep "$processName" | grep -v grep |awk '{print $1}')
for id in $pidArr
do
kill -9 $id
echo "killed $id"
done

$# 表示返回所有脚本参数的个数 如果不带参数,为了避免杀掉不该杀掉的进程,直接退出脚本。
$1 拿到需要杀掉进程的名称
ps c列出程序时,显示每个程序真正的指令名称,这里没有用常用的ps au,因为这样会把执行这条脚本的进程号也带进去
grep -v grep 使用grep过滤时往往会多查出来一行如下,这条语句实现过滤(其实 ps c已经不会显示grep的输出了)

grep
awk 实现过滤,linux下awk特别强大,这里不再详细记录

也可简单的一行实现
ps a | grep node | grep -v grep | awk '{print $1}' | xargs kill -9

相关文章

网友评论

      本文标题:杀死指定进程

      本文链接:https://www.haomeiwen.com/subject/djrfqftx.html