# killall - 使用进程的名称来杀死一组进程

killall命令 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

killall可以根据名字来杀死进程,它会给指定名字的所有进程发送信息。如果没有指定信号名,则发送SIGTERM。信号可以通过名称(例如-HUP或-SIGHUP)或数字(例如-1)或选项-s来指定。如果命令名不是正则表达式(选项-r),并且包含斜杠(/),则将选择执行该特定文件的进程,与其名称无关。如果每个列出的命令至少有一个进程被杀死,或者没有列出命令,并且至少有一个进程符合-u和-Z搜索条件,则KILLALL返回一个零返回代码。否则KILLALL返回非零。KILLALL进程永远不会杀死自己(但可能会杀死其他KILLALL进程)。

# 适用范围

RedHat
RHEL
Ubuntu
CentOS
Debian
Deepin
SUSE
openSUSE
Fedora
Linux Mint
Alpine Linux
Arch Linux

# 语法

killall [OPTION] [name]

# 选项

-e, --exact              # 进程需要和名字完全相符
-I, --ignore-case        # 忽略大小写
-g, --process-group      # 结束进程组
-i, --interactive        # 结束之前询问
-l, --list               # 列出所有的信号名称
-q, --quite              # 进程没有结束时,不输出任何信息
-r, --regexp             # 将进程名模式解释为扩展的正则表达式。
-s, --signal             # 发送指定信号
-u, --user               # 结束指定用户的进程
-v, --verbose            # 显示详细执行过程
-w, --wait               # 等待所有的进程都结束

--help                           # 显示帮助文档
-V, --version                    # 显示命令版本信息

# 举例

结束所有进程


[root@localhost ~]$ ps      #查看进程,有3个wc进程
  PID TTY          TIME CMD
 8266 pts/0    00:00:00 bash
 9781 pts/0    00:00:00 wc
 9784 pts/0    00:00:00 wc
 9785 pts/0    00:00:00 wc
 9786 pts/0    00:00:00 ps

[root@localhost ~]$ killall -9 wc     #结束所有的wc进程

[root@localhost ~]$ ps                #查看进程,wc都被杀死
  PID TTY          TIME CMD
 8266 pts/0    00:00:00 bash
 9788 pts/0    00:00:00 ps
[1]   已杀死               nice -n 19 wc
[2]-  已杀死               nice -n 19 wc
[3]+  已杀死               nice -n 19 wc