歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 總結Linux中用於終結進程的kill和pikill及killall命令用法

總結Linux中用於終結進程的kill和pikill及killall命令用法

日期:2017/3/1 17:31:34   编辑:Linux技術

kill
kill 命令:發送指定的信號到相應進程。不指定信號將發送SIGTERM(15)終止指定進程。若仍無法終止該程序可用“-KILL” 參數,其發送的信號為SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root用戶將影響用戶的進程,非root用戶只能影響自己的進程

-l <信號變化哦啊>,若不加信號的編號參數,則使用“-l”參數會列出全部的信號名稱
-a 當處理當前進程時,不限制命令名和進程號的對應關系
-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
-s 指定發送信號
-u 指定用戶
例:

復制代碼代碼如下:
[root@redhat ~]# kill 1908 #殺死進程
[root@redhat ~]# kill -KILL 1908 #強制殺死進程
[root@redhat ~]# kill -9 6985 #徹底殺死進程
[root@redhat ~]# kill -u tank #殺死指定用戶的所有進程

pkill
pkill 命令:是ps命令和kill命令的結合,用來殺死指定進程

-f 顯示完整程序
-l 顯示源代碼
-n 顯示新程序
-o 顯示舊程序
-v 與條件不符合的程序
-x 與條件符合的程序
-p<進程號> 列出父進程為用戶指定進程的進程信息
-t<終端> 指定終端下的所有程序
-u<用戶> 指定用戶的程序

例:

復制代碼代碼如下:
[root@redhat ~]# pkill -t tty1 #殺死終端1下的所有進程
[root@Centos ~]# pkill -kill -t pts/2 #踢用戶
[root@redhat ~]# pkill -9 6985 #徹底殺死進程
[root@redhat ~]# pkill -u tank #殺死指定用戶的所有進程
[root@redhat ~]# pkill -vu root #殺死不屬於root用戶的所有進程

killall
killall - 以名字方式來殺死進程 [[ ]]

killall [ -egiqvw ] [ -signal ] name ...
killall -l
killall -V [[ ]]
DESCRIPTION (描述)

killall 發送一條信號給所有運行任意指定命令的進程. 如果沒有指定信號名, 則發送 SIGTERM.
信號可以以名字 (如 -HUP ) 或者數字 (如 -1 ) 的方式指定. 信號 0 (檢查進程是否存在)只能以數字方式指定.
如果命令名包括斜槓 (/), 那麼執行該特定文件的進程將被殺掉, 這與進程名無關.
如果對於所列命令無進程可殺, 那麼 killall 會返回非零值. 如果對於每條命令至少殺死了一個進程, killall 返回 0.
killall 進程決不會殺死自己 (但是可以殺死其它 killall 進程). [[ ]]
OPTIONS (選項)

-e
對於很長的名字, 要求准確匹配. 如果一個命令名長於 15 個字符, 則可能不能用整個名字 (溢出了). 在這種情況下, killall 會殺死所有匹配名字前 15 個字符的所有進程. 有了 -e 選項,這樣的記錄將忽略. 如果同時指定了 -v 選項, killall 會針對每個忽略的記錄打印一條消息.
-g
殺死屬於該進程組的進程. kill 信號給每個組只發送一次, 即使同一進程組中包含多個進程.
-i
交互方式,在殺死進程之前征求確認信息.
-l
列出所有已知的信號名.
-q
如果沒有進程殺死, 不會提出抱怨.
-v
報告信號是否成功發送.
-V
顯示版本信息.
-w
等待所有殺的進程死去. killall 會每秒檢查一次是否任何被殺的進程仍然存在, 僅當都死光後才返回. 注意: 如果信號被忽略或沒有起作用, 或者進程停留在僵屍狀態, killall 可能會永久等待.

例:

復制代碼代碼如下:
[root@redhat ~]# killall sudo

會話結束,結束 shell ... ...已被殺死。

Copyright © Linux教程網 All Rights Reserved