每天一個linux命令(42):kill命令 相關連結:每天一個linux命令(1):ls命令http://www.bkjia.com/os/201210/163049.html;每天一個linux命令(2):cd命令http://www.bkjia.com/os/201210/163050.html;每天一個linux命令(3):pwd命令http://www.bkjia.com/os/201210/163462.html;每天一個linux命令(4):mkdir命令http://www.bkjia.com/os/201210/163463.html;每天一個linux命令(5):rm命令http://www.bkjia.com/os/201210/163662.html;每天一個linux命令(6):rmdir命令http://www.bkjia.com/os/201210/164017.html;每天一個linux命令(7):mv命令http://www.bkjia.com/os/201210/164247.html;每天一個linux命令(8):cp命令http://www.bkjia.com/os/201210/164254.html;每天一個linux命令(9):touch命令http://www.bkjia.com/os/201211/165699.html;每天一個linux命令(10):cat命令http://www.bkjia.com/os/201211/165989.html;每天一個linux命令(11):nl命令http://www.bkjia.com/os/201211/165990.html每天一個linux命令(12):more命令http://www.bkjia.com/os/201211/165994.html每天一個linux命令(13):less命令http://www.bkjia.com/os/201211/165998.html每天一個linux命令(14):head命令http://www.bkjia.com/os/201211/166191.html每天一個linux命令(15):tail命令http://www.bkjia.com/os/201211/168702.html每天一個linux命令(16):which命令http://www.bkjia.com/os/201211/168890.html每天一個linux命令(17):whereis命令http://www.bkjia.com/os/201211/168893.html每天一個linux命令(18):locate命令http://www.bkjia.com/os/201211/168895.html每天一個linux命令(19):find命令概覽http://www.bkjia.com/os/201211/168897.html每天一個linux命令(20):find命令之exechttp://www.bkjia.com/os/201211/168901.html每天一個linux命令(21):find命令之xargshttp://www.bkjia.com/os/201211/168903.html每天一個linux命令(22):find命令的參數詳解http://www.bkjia.com/os/201211/168912.html每天一個linux命令(23):Linux目錄結構http://www.bkjia.com/os/201211/170430.html每天一個linux命令(24):Linux檔案類型與副檔名http://www.bkjia.com/os/201211/170431.html每天一個linux命令(25):linux檔案屬性詳解http://www.bkjia.com/os/201211/170434.html每天一個linux命令(26):用SecureCRT來上傳和下載檔案http://www.bkjia.com/os/201211/172022.html每天一個linux命令(27):linux chmod命令http://www.bkjia.com/os/201211/172028.html每天一個linux命令(28):tar命令http://www.bkjia.com/os/201212/172641.html每天一個linux命令(29):chgrp命令http://www.bkjia.com/os/201212/172983.html每天一個linux命令(30):chown命令http://www.bkjia.com/os/201212/173239.html每天一個linux命令(31):/etc/group檔案詳解http://www.bkjia.com/os/201212/174429.html每天一個linux命令(32):gzip命令http://www.bkjia.com/os/201212/174431.html每天一個linux命令(33):df命令http://www.bkjia.com/os/201212/174434.html每天一個linux命令(34):du命令http://www.bkjia.com/os/201212/174701.html每天一個linux命令(35):ln命令http://www.bkjia.com/os/201212/174993.html每天一個linux命令(36):diff命令http://www.bkjia.com/os/201212/176333.html每天一個linux命令(37):date命令http://www.bkjia.com/os/201212/176335.html每天一個linux命令(38):cal命令http://www.bkjia.com/os/201212/176337.html每天一個linux命令(39):grep命令http://www.bkjia.com/os/201212/177059.html每天一個linux命令(40):wc命令http://www.bkjia.com/os/201212/177343.html每天一個linux命令(41):ps命令http://www.bkjia.com/os/201212/177665.html Linux中的kill命令用來終止指定的進程(terminate a process)的運行,是Linux下進程管理的常用命令。通常,終止一個前台進程可以使用Ctrl+C鍵,但是,對於一個後台進程就須用kill命令來終止,我們就需要先使用ps/pidof/pstree/top等工具擷取進程PID,然後使用kill命令來殺掉該進程。kill命令是通過向進程發送指定的訊號來結束相應進程的。在預設情況下,採用編號為15的TERM訊號。TERM訊號將終止所有不能捕獲該訊號的進程。對於那些可以捕獲該訊號的進程就要用編號為9的kill訊號,強行“殺掉”該進程。 www.2cto.com 1.命令格式:kill[參數][進程號]2.命令功能:發送指定的訊號到相應進程。不指定型號將發送SIGTERM(15)終止指定進程。如果任無法終止該程式可用“-KILL” 參數,其發送的訊號為SIGKILL(9) ,將強制結束進程,使用ps命令或者jobs 命令可以查看進程號。root使用者將影響使用者的進程,非root使用者只能影響自己的進程。3.命令參數:-l 訊號,若果不加訊號的編號參數,則使用“-l”參數會列出全部的訊號名稱-a 當處理當前進程時,不限制命令名和進程號的對應關係-p 指定kill 命令只列印相關進程的進程號,而不發送任何訊號-s 指定發送訊號-u 指定使用者 注意:1、kill命令可以帶訊號號碼選項,也可以不帶。如果沒有訊號號碼,kill命令就會發出終止訊號(15),這個訊號可以被進程捕獲,使得進程在退出之前可以清理並釋放資源。也可以用kill向進程發送特定的訊號。例如:kill -2 123它的效果等同於在前台運行PID為123的進程時按下Ctrl+C鍵。但是,普通使用者只能使用不帶signal參數的kill命令或最多使用-9訊號。2、kill可以帶有進程ID號作為參數。當用kill向這些進程發送訊號時,必須是這些進程的主人。如果試圖撤銷一個沒有許可權撤銷的進程或撤銷一個不存在的進程,就會得到一個錯誤資訊。3、可以向多個進程發訊號或終止它們。4、當kill成功地發送了訊號後,shell會在螢幕上顯示出進程的終止資訊。有時這個資訊不會馬上顯示,只有當按下Enter鍵使shell的命令提示字元再次出現時,才會顯示出來。5、應注意,訊號使進程強行終止,這常會帶來一些副作用,如資料丟失或者終端無法恢複到正常狀態。發送訊號時必須小心,只有在萬不得已時,才用kill訊號(9),因為進程不能首先捕獲它。要撤銷所有的後台作業,可以輸入kill 0。因為有些在後台啟動並執行命令會啟動多個進程,跟蹤並找到所有要殺掉的進程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當前shell啟動的進程,是個有效方法。4.使用執行個體:執行個體1:列出所有訊號名稱命令:kill -l輸出:[root@localhost test6]# 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) SIGUSR213) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+439) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+1247) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-1451) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-1055) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-659) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX說明:只有第9種訊號(SIGKILL)才可以無條件終止進程,其他訊號進程都有權利忽略。 下面是常用的訊號:HUP 1 終端斷線INT 2 中斷(同 Ctrl + C)QUIT 3 退出(同 Ctrl + \)TERM 15 終止KILL 9 強制終止CONT 18 繼續(與STOP相反, fg/bg命令)STOP 19 暫停(同 Ctrl + Z)執行個體2:得到指定訊號的數值命令:輸出:[root@localhost test6]# kill -l KILL9[root@localhost test6]# kill -l SIGKILL9[root@localhost test6]# kill -l TERM15[root@localhost test6]# kill -l SIGTERM15[root@localhost test6]#說明:執行個體3:先用ps尋找進程,然後用kill殺掉命令:kill 3268輸出:[root@localhost test6]# ps -ef|grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.logroot 3370 2822 0 16:21 pts/0 00:00:00 grep vim[root@localhost test6]# kill 3268 [root@localhost test6]# kill 3268 -bash: kill: (3268) - 沒有那個進程[root@localhost test6]#說明:執行個體4:徹底殺死進程命令:kill –9 3268 輸出:[root@localhost test6]# ps -ef|grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.logroot 3370 2822 0 16:21 pts/0 00:00:00 grep vim[root@localhost test6]# kill –9 3268 [root@localhost test6]# kill 3268 -bash: kill: (3268) - 沒有那個進程[root@localhost test6]#說明:執行個體5:殺死指定使用者所有進程命令:kill -9 $(ps -ef | grep peidalinux)kill -u peidalinux輸出:[root@localhost ~]# kill -9 $(ps -ef | grep peidalinux) [root@localhost ~]# kill -u peidalinux說明:方法一,過濾出hnlinux使用者進程並殺死執行個體6:init進程是不可殺的命令:kill -9 1輸出:[root@localhost ~]# ps -ef|grep initroot 1 0 0 Nov02 ? 00:00:00 init [3] root 17563 17534 0 17:37 pts/1 00:00:00 grep init[root@localhost ~]# kill -9 1[root@localhost ~]# kill -HUP 1[root@localhost ~]# ps -ef|grep initroot 1 0 0 Nov02 ? 00:00:00 init [3] root 17565 17534 0 17:38 pts/1 00:00:00 grep init[root@localhost ~]# kill -KILL 1[root@localhost ~]# ps -ef|grep initroot 1 0 0 Nov02 ? 00:00:00 init [3] root 17567 17534 0 17:38 pts/1 00:00:00 grep init[root@localhost ~]#說明:init是Linux系統操作中不可缺少的程式之一。所謂的init進程,它是一個由核心啟動的使用者級進程。核心自行啟動(已經被載入記憶體,開始運行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動一個使用者級程式init的方式,完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)。 其它所有進程都是init進程的子孫。init進程是不可殺的!