6. killall 命令

killall 命令用于通过进程名(而非 PID)终止进程的命令。它会向所有匹配指定名称的进程发送信号(默认 SIGTERM),他比使用 kill 命令 更方便进行批量管理进程。

命令格式

killall [选项] 进程名

常用选项

选项
说明
-s <信号名字>
给出发送信号的名字。
-<信号值>-n <信号值>
给出发送信号的值。
-r <进程名正则表达式>
通过正则表达式匹配进程名。
-u <用户名>
仅终止指定用户的进程。

示例

weimingze@mzstudio:~$ killall -s SIGTSTP python3
weimingze@mzstudio:~$ killall -s SIGCONT python3
weimingze@mzstudio:~$ killall -n 18 python3
weimingze@mzstudio:~$ killall -18 python3
weimingze@mzstudio:~$ killall python3
weimingze@mzstudio:~$ killall -9 python3
weimingze@mzstudio:~$ killall -9 -r "pyth*"  # 关闭所有命令名以 pyth 开头的进程。
weimingze@mzstudio:~$ killall -u weimingze python3  # 关闭weimingze 用户下所有命令名为 python3的进程。

练习:

  1. 打开一个终端,在终端内输入命令 sleep 1000,此 sleep 命令会运行 1000 秒或才能退出并放弃终端终端。
  2. 打开另外一个终端,在终端内输入命令 killall sleep
  3. 回到第一个终端,看 sleep 1000 命令是否被终止。