一天一个 Linux 命令(37):killall 命令

一、简介

Linux里的killall命令使用进程的名称来杀死进程(kill processes by name),使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,更加方便。

二、格式说明

killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...
killall [参数] [进程名]

Usage
killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...
       killall -l, --list
       killall -V, --version
       
-e,--exact          require exact match for very long names
-I,--ignore-case    case insensitive process name match
-g,--process-group  kill process group instead of process
-y,--younger-than   kill processes younger than TIME
-o,--older-than     kill processes older than TIME
-i,--interactive    ask for confirmation before killing
-l,--list           list all known signal names
-q,--quiet          don't print complaints
-r,--regexp         interpret NAME as an extended regular expression
-s,--signal SIGNAL  send this signal instead of SIGTERM
-u,--user USER      kill only process(es) running as USER
-v,--verbose        report if the signal was successfully sent
-V,--version        display version information
-w,--wait           wait for processes to die
-Z,--context REGEXP kill only process(es) having context
(must precede other arguments)

三、选项说明

-e	对长名称进行精确匹配
-l	打印所有已知信号列表
-g  结束进程组
-p	杀死进程所属的进程组
-q  进程没有结束时,不输出任何信息
-i	交互式杀死进程,杀死进程前需要进行确认
-I  忽略大小写
-r	使用正规表达式匹配要杀死的进程名称
-s	用指定的进程号代替默认信号“SIGTERM”
-u	杀死指定用户的进程
-v  显示详细执行过程
-w  等待所有的进程都结束
-Z  只杀死拥有scontext 的进程
-V  显示版本信息
--help 显示帮助信息

四、命令功能

用来杀死指定进程名的所有进程。

五、常见用法

5.1 显示所有已知信号列表

# killall -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

5.2 杀死nginx所有进程

# killall -9 nginx

5.3 杀死php-fpm所有进程

# killall -9 php-fpm

5.4 把所有的登录后的shell给杀掉

killall -9 bash

注意:killall -9 bash 后,所有bash都会被卡掉了,所以当前所有连接丢失了。需要重新连接并登录。

5.5 向进程发送指定信号

#killall -TERM nginx
#killall -KILL nginx

joshua317博客
请先登录后发表评论
  • latest comments
  • 总共0条评论