Linux 批量 kill 掉匹配到名字的进程

作者:Gakki

一键 kill 掉所匹配到的进程
  • 在用 linux 查看进程的时候,我们有的时候会发现相同的进程使用了多个 pid。如,要 kill 掉进程信息中匹配到的 nginx 相关的进程。可以使用下列命令:
    ps aux | grep nginx |awk '{print $2}' | xargs kill -9

  • 解释命令:

    • ps:显示当前进程的状态

      • a:显示当前终端机下的所有程序,包括其他用户的程序。
      • u:以用户为主的格式来显示程序状况。
      • x:显示所有程序,不以终端机来区分。通常与 a 参数一起使用,可列出完整信息。
    • | :

      • 语法格式:command1 | command2
      • Linux 所提供的管道符 " | " 将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
      • 分号(;),&&和&,|和||说明与用法
    • grep:查找文件里符合条件的字符串。

  • awk:一种文本处理工具

    • $2:表示第二列(域)

    • print $2:打印第二列(域)

    • awk '{print $2}' :一行一行的读取指定的文件,以空格或 TAB 作为分隔符,打印第二列(域)

    • 例子:查看 score.txt 文件,通过 awk 打印出第二列

      awk 使用

      • 我们这里通过命令: ps aux | grep nginx |awk '{print $2}' 打印出 nginx 的pid。
        pid
    • xargs:捕获一个命令的输出,然后传递给另外一个命令。即将管道传递过来的每一个 PID 作为 kill -9 的参数。

    • kill:向进程发送信号

      • -9(KILL):表示无条件退出,但由进程自行决定是否退出。
      • :这就是为什么 kill -9 终止不了系统进程和守护进程的原因。

你可能感兴趣的:(Linux 批量 kill 掉匹配到名字的进程)