文章出處

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.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()