当前位置: > Linux命令 >

linux命令之三十八killall命令

时间:2016-05-13 16:14来源:linux.it.net.cn 作者:IT

        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  

 

输出:

  1. [root@localhost ~]# ps -ef|grep vi  
  2. root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt  
  3. root     17611 17582  0 17:51 pts/1    00:00:00 grep vi  
  4. [root@localhost ~]# ps -ef|grep vi  
  5. root     17581 17398  0 17:51 pts/0    00:00:00 vi test.txt  
  6. root     17640 17612  0 17:51 pts/2    00:00:00 vi test.log  
  7. root     17642 17582  0 17:51 pts/1    00:00:00 grep vi  
  8. [root@localhost ~]# killall vi  
  9. [root@localhost ~]# ps -ef|grep vi  
  10. root     17645 17582  0 17:52 pts/1    00:00:00 grep vi  




 

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

后台运行程序:vi &

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

输出:

  1. [root@localhost ~]# vi &   
  2. [1] 17646[root@localhost ~]# killall -TERM vi  
  3. [1]+  Stopped                 vi  
  4. [root@localhost ~]# vi &   
  5. [2] 17648[root@localhost ~]# ps -ef|grep vi  
  6. root     17646 17582  0 17:54 pts/1    00:00:00 vi  
  7. root     17648 17582  0 17:54 pts/1    00:00:00 vi  
  8. root     17650 17582  0 17:55 pts/1    00:00:00 grep vi  
  9. [2]+  Stopped                 vi  
  10. [root@localhost ~]# killall -TERM vi  
  11. [root@localhost ~]# ps -ef|grep vi  
  12. root     17646 17582  0 17:54 pts/1    00:00:00 vi  
  13. root     17648 17582  0 17:54 pts/1    00:00:00 vi  
  14. root     17653 17582  0 17:55 pts/1    00:00:00 grep vi  
  15. [root@localhost ~]# killall -KILL vi  
  16. [1]-  已杀死               vi  
  17. [2]+  已杀死               vi  
  18. [root@localhost ~]# ps -ef|grep vi  
  19. root     17656 17582  0 17:56 pts/1    00:00:00 grep vi  




 

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

命令:killall -9 bash  

 

输出:

 

  1. [root@localhost ~]# w  
  2.  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  
  3. root     pts/0    10.2.0.68        14:58    9:52   0.10s  0.10s -bash  
  4. root     pts/1    10.2.0.68        17:51    0.00s  0.02s  0.00s w  
  5. root     pts/2    10.2.0.68        17:51    9:24   0.01s  0.01s -bash  
  6. [root@localhost ~]# killall -9 bash  
  7. [root@localhost ~]# w  
  8.  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  
  9. root     pts/0    10.2.0.68        18:01    0.00s  0.01s  0.00s w  

 

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




(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容