kill用來終止指定程序(terminate a process)的執行,是linux管理程序的常用命令。通常,終止乙個前台程序可以使用ctrl+c,但是對於乙個後台程序就須用kill來終止,我們需要先使用ps/pidof/pstree/top等,獲取程序pid,然後使用kill來殺掉程序。kill通過向程序傳送指定的訊號來結束相應程序。在預設情況下,採用編號為15的term訊號。term訊號將終止所有不能捕獲該訊號的程序。對於那些可以捕獲該訊號(15)的程序,我們要用編號為9的sigkill,強行「殺掉」該程序。
kill
[引數]
[程序號]
傳送指定的訊號到相應程序。不指定訊號的話,將傳送sigterm(15)終止指定程序。如果無法終止該程序,可用「-kill」 引數,其傳送的訊號為sigkill(9) ,將強制結束程序。使用ps或jobs可以檢視程序號。root使用者將影響所有使用者的程序,非root使用者只能影響自己的程序。
-l 《訊號》,如果不加訊號的編號引數,則「-l」引數會列出全部的訊號名稱
-a,當處理當前程序時,不限制命令名和程序號的對應關係
-p,指定kill只列印相關程序的程序號,而不傳送任何訊號
-s,指定傳送訊號
-u,指定使用者
注意:例一:列出所有的訊號名稱
命令:kill -l
(常用)
# kill -l
1)sighup
2)sigint
3)sigquit
4) sigill
5)sigtrap
6)sigabrt
7)sigbus
8) sigfpe
9)sigkill
10) sigusr1 11)sigsegv
12) sigusr2
13)sigpipe
14)sigalrm
15)sigterm
16) sigstkflt
17)sigchld
18)sigcont
19)sigstop
20) sigtstp
21)sigttin
22)sigttou
23)sigurg
24) sigxcpu
25)sigxfsz
26)sigvtalrm
27)sigprof
28) sigwinch
29)sigio
30)sigpwr
31)sigsys
34) sigrtmin
35) sigrtmin+1
36) sigrtmin+2
37) sigrtmin+3
38) sigrtmin+4
39) sigrtmin+5
40) sigrtmin+6
41) sigrtmin+7
42) sigrtmin+8
43) sigrtmin+9
44) sigrtmin+10
45) sigrtmin+11
46) sigrtmin+12
47) sigrtmin+13
48) sigrtmin+14
49) sigrtmin+15
50) sigrtmax-14
51) sigrtmax-13
52) sigrtmax-12
53) sigrtmax-11
54) sigrtmax-10
55) sigrtmax-9
56) sigrtmax-8
57) sigrtmax-7
58) sigrtmax-6
59) sigrtmax-5
60) sigrtmax-4
61) sigrtmax-3
62) sigrtmax-2
63) sigrtmax-1
64) sigrtmax
hup,1,終端斷線
int,2,中斷(同 ctrl + c)
quit,3,退出(同 ctrl + \)
term,15,終止
kill,9,強制終止
cont,18,繼續(與stop相反, fg/bg命令)
stop,19,暫停(同 ctrl + z)
例二:得到指定訊號的數值
# kill -l kill
9# kill -l sigkill
9# kill -l term
15# kill -l sigterm
15
例三:先用ps查詢程序,然後用kill殺掉(常用)
命令:kill 3268
# ps -ef|grep vim
root 3268
2884
016:21 pts/1
00:00:00 vim install.log
root 3370
2822
016:21 pts/0
00:00:00 grep vim
# kill 3268 //傳送訊號15
# kill 3268
-bash: kill: (3268) - 沒有那個程序
例四:徹底殺死程序(常用)
命令:kill –9 3268
# ps -ef|grep vim
root 3268
2884
016:21 pts/1
00:00:00 vim install.log
root 3370
2822
016:21 pts/0
00:00:00 grep vim
# kill –9 3268
# kill 3268
-bash: kill: (3268) - 沒有那個程序
例五:殺死指定使用者的所有程序(常用)
命令:
kill -9
$(ps -ef | grep peidalinux)
或kill -u peidalinux
說明:過濾出hnlinux使用者的程序,並全部殺死
例六:init程序是不可殺的
命令:kill -9 1
# ps -ef|grep init
root 1
00 nov02 ? 00:00:00 init [3]
root 17563
17534
017:37 pts/1
00:00:00 grep init
# kill -9 1
# kill -hup 1
# ps -ef|grep init
root 1
00 nov02 ? 00:00:00 init [3]
root 17565
17534
017:38 pts/1
00:00:00 grep init
# kill -kill 1
# ps -ef|grep init
root 1
00 nov02 ? 00:00:00 init [3]
root 17567
17534
017:38 pts/1
00:00:00 grep init
說明:init是linux系統中不可缺少的程式之一。所謂的init程序,是乙個由核心啟動的使用者級程序。核心自行啟動(已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等)之後,通過啟動乙個使用者級程式init的方式,完成引導程序。init始終是第乙個程序(程序號始終為1),其它所有程序都是init程序的子孫,所以init程序不可殺。 每天乙個linux命令(39) grep 命令
linux系統中grep命令是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹 配的行列印出來。grep全稱是global regular expression print,表示全域性正規表示式版本,它的使用許可權是所有使用者。grep的工作方式是這樣的,它在乙個或多個檔案中搜尋字串模板。...
每天乙個Linux命令
將我遇到的linux指令總結一下,不斷增加 1 sz和rz 一般來說,linux 伺服器大多是通過 ssh客戶端來進行遠端的登陸和管理的,使用 ssh登陸 linux ssh有關的兩個命令可以提供很方便的操作 sz 將選定的檔案傳送 send 到本地機器 rz 執行該命令會彈出乙個檔案選擇視窗,從本...
每天乙個linux命令
linux cmp命令 linux cmp命令用於比較兩個檔案是否有差異。當相互比較的兩個檔案完全一樣時,則該指令不會顯示任何資訊。若發現有所差異,缺省會標示出第乙個不同之處的字元和列數編號。若不指定任何檔名稱或是所給予的檔名為 則cmp指令會從標準輸入裝置讀取資料。語法cmp clsv i 字元數...