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都會被卡掉了,所以當前所有連接丟失了。需要重新連接並登錄。

 

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

 

arrow
arrow
    文章標籤
    linux command killall
    全站熱搜

    痞客興 發表在 痞客邦 留言(0) 人氣()