爱技术 & 爱分享
爱蛋蛋 & 爱生活

killall命令

killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。

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

语法

killall(选项)(参数)

killall [-Z CONTEXT] [-u USER] [ -eIgiqrvw ] [ -SIGNAL ] NAME...

killall -l, --list

killall -V, --version

选项

选项 解释
-e,–exact 对长名称进行精确匹配
-I,–ignore-case 不区分大小写的进程名称匹配
-g,–process-group 杀死进程组而不是进程
-y,–younger-than 杀死早于指定时间之前的进程
-o,–older-than 杀死晚于指定时间之前的进程
-i,–interactive 交互式杀死进程,杀死进程之前进行确认
-l,–list 列出所有已知的信号名称
-q,–quiet 如果进程没有被杀死,则不输出任何信息
-r,–regexp 将NAME解释为扩展的正则表达式
-s,–signal SIGNAL 发送指定信号替代默认的SIGTERM
-u,–user USER 只杀死作为USER运行的进程
-v,–verbose 报告信号是否成功发送
-V,–version 显示版本信息
-w,–wait 等待进程死亡
-Z,–context REGEXP 只杀死具有上下文的进程(必须在其他参数之前)

参数

进程名称:指定要杀死的进程名称。

实例

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

killall 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

实例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

说明:

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

参考链接:

http://man.linuxde.net/killall

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

赞(0) 传送门
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。编程日志 » killall命令
分享到: 更多 (0)

游戏 && 后端

传送门传送门