美文网首页
杀死指定进程

杀死指定进程

作者: 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