安装pidof,让kill命令更好用

kill命令可以说是我们经常使用的一个命令,但是比如我们要关闭多个叫“Google Chrome”的进程的时候,就要小小折腾一下了,下面介绍几种办法,最优直接跳到方法四

  1. 方法一

    1
    ps -ef|grep 'Google Chrome'

    根据结果,将pid一个个取出,使用kill -9 pid1 pid2 pid3…去逐个删除

  2. 方法二

    1
    ps -ef | grep 'Google Chrome' | grep -v grep | awk '{print $2}' | xargs kill -9

    解释如下:
      ps -ef 用于获取当前系统所有进程,如上图所示。
      grep 'Google Chrome'过滤出与“Google Chrome”字符相关的数据(以行为单位)。
      grep -v grep的作用是除去本次操作所造成的影响,-v 表示反向选择。
      awk '{print $2}' 表示筛选出我们所关注的进程号,$2 表示每行第二个变量,在这个例子中就是进程号。所以如果你使用ps工具不一样,或者ps带的参数不一样,那需要关注的就可能不是$2,可能是$1 。
      xargs kill -9 中的 xargs 命令表示用前面命令的输出结果(也就是一系列的进程号)作为kill -9 命令的参数,-9 表示强制终止,不是必须的。

  3. 方法三

    1
    killall Google Chrome

    好了前三种方法介绍完了,容我吐槽一波

    • 相信你的也看到了Google Chrome前后要加单引号,没办法,我也很无奈
    • Linux是大小写敏感的,如果你需要查找的是google chrome,那么不好意思,用Google Chrome是查不到的,因为g≠G & c≠C,所以不能忽略大小写
    • 方法2虽然相对优秀,but,这命令也太长太秀了,臣妾做不到啊
  4. 方法四

    1
    2
    3
    4
    5
    #安装pidof
    brew install pidof

    #查看pidof使用
    # man pidof

    安装完毕后,执行如下命令

    1
    2
    3
    4
    5
    #pidof <process name>
    pidof google chrome

    #pidof -l <process name> 能列出更多信息
    # pidof -l google chrome

    Terminal会列出所有包含”google chrome“(忽略大小写)的pid,结果如下:

    image-20190311214515634

啊~

啊~

啊~

要批量杀进程?

1
kill -9 $(pidof google chrome)

其实就是方法一的变种版,方法二的封装版,但是使用上更加简洁方便,推荐哦~