本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/188
一、简介
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原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/188