cover_image

每天一个 Linux 命令(59):killall 命令

算法爱好者
2021年11月08日 09:55

推荐关注↓

Linux 系统中的 killall 命令用于杀死指定名字的进程(kill processes by name)。我们可以使用 kill 命令杀死指定进程 PID 的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用 ps 等命令再配合 grep 来查找进程,而 killall 把这两个过程合二为一,是一个很好用的命令。

1.命令格式:

killall[参数][进程名]

2.命令功能:

用来结束同名的的所有进程

3.命令参数:

-Z 只杀死拥有 scontext 的进程

-e 要求匹配进程名称

-I 忽略小写

-g 杀死进程组而不是进程

-i 交互模式,杀死进程前先询问用户

-l 列出所有的已知信号名称

-q 不输出警告信息

-s 发送指定的信号

-v 报告信号是否成功发送

-w 等待进程死亡

--help 显示帮助信息

--version 显示版本显示

4.使用实例:

实例 1:杀死所有同名进程

命令:

killall vi

输出:

 [root@localhost ~]# ps -ef|grep vi

 root   17581 17398 0 17:51 pts/0  00:00:00 vi test.txt

 root   17611 17582 0 17:51 pts/1  00:00:00 grep vi

 [root@localhost ~]# ps -ef|grep vi

 root   17581 17398 0 17:51 pts/0  00:00:00 vi test.txt

 root   17640 17612 0 17:51 pts/2  00:00:00 vi test.log

 root   17642 17582 0 17:51 pts/1  00:00:00 grep vi

 [root@localhost ~]# killall vi

 [root@localhost ~]# ps -ef|grep vi

 root   17645 17582 0 17:52 pts/1  00:00:00 grep vi

实例 2:向进程发送指定信号

命令:

后台运行程序:vi &

杀死 vi 进程:killall -TERM vi 或者 killall -KILL vi

输出:

 [root@localhost ~]# vi & 

 [1] 17646[root@localhost ~]# killall -TERM vi

 [1]+ Stopped         vi

 [root@localhost ~]# vi & 

 [2] 17648[root@localhost ~]# ps -ef|grep vi

 root   17646 17582 0 17:54 pts/1  00:00:00 vi

 root   17648 17582 0 17:54 pts/1  00:00:00 vi

 root   17650 17582 0 17:55 pts/1  00:00:00 grep vi



 [2]+ Stopped         vi

 [root@localhost ~]# killall -TERM vi

 [root@localhost ~]# ps -ef|grep vi

 root   17646 17582 0 17:54 pts/1  00:00:00 vi

 root   17648 17582 0 17:54 pts/1  00:00:00 vi

 root   17653 17582 0 17:55 pts/1  00:00:00 grep vi

 [root@localhost ~]# killall -KILL vi

 [1]- 已杀死        vi

 [2]+ 已杀死        vi

 [root@localhost ~]# ps -ef|grep vi

 root   17656 17582 0 17:56 pts/1  00:00:00 grep vi

 [root@localhost ~]#

实例 3:把所有的登录后的 shell 给杀掉

命令:

killall -9 bash

输出:

 [root@localhost ~]# w

  18:01:03 up 41 days, 18:53, 3 users, load average: 0.00, 0.00, 0.00USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT

 root   pts/0  10.2.0.68    14:58  9:52  0.10s 0.10s -bash

 root   pts/1  10.2.0.68    17:51  0.00s 0.02s 0.00s w

 root   pts/2  10.2.0.68    17:51  9:24  0.01s 0.01s -bash

 [root@localhost ~]# killall -9 bash

 [root@localhost ~]# w

  18:01:48 up 41 days, 18:54, 1 user, load average: 0.07, 0.02, 0.00USER   TTY   FROM       LOGIN@  IDLE  JCPU  PCPU WHAT

 root   pts/0  10.2.0.68    18:01  0.00s 0.01s 0.00s w

 [root@localhost ~]#

说明:

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


转自:www.cnblogs.com/peida/archive/2012/12/21/2827366.html


PS:后台发送 命令 可获取“每天一个Linux命令”系列文章


- EOF -

推荐阅读  点击标题可跳转

1、从此明白了卷积神经网络(CNN)

2、这才是中国被卡脖子最严重的软件!

3、用 Python 自动玩王者荣耀,简直太秀了!


觉得本文有帮助?请分享给更多人

推荐关注「算法爱好者」,修炼编程内功

点赞和在看就是最大的支持❤️

继续滑动看下一个
算法爱好者
向上滑动看下一个