一、killall使用方法(結束大多數進程)
參考:http://www.cnblogs.com/peida/archive/2012/12/21/2827366.html
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@