[Linux] kill 、killall断凶、pkill 命令詳解

KILL 命令
  Linux中的kill命令用來終止指定的進程(terminate a process)的運行伤提,是Linux下進程管理的常用命令。通常认烁,終止一個前臺進程可以使用Ctrl+C鍵肿男,但是,對于一個后臺進程就須用kill命令來終止却嗡,我們就需要先使用ps/pidof/pstree/top等工具獲取進程PID舶沛,然后使用kill命令來殺掉該進程。kill命令是通過向進程發(fā)送指定的信號來結(jié)束相應進程的窗价。在默認情況下如庭,采用編號為15的TERM信號。TERM信號將終止所有不能捕獲該信號的進程撼港。對于那些可以捕獲該信號的進程就要用編號為9的kill信號坪它,強行“殺掉”該進程骤竹。

  • 1.命令格式:kill[參數(shù)][進程id]
  • 2.命令參數(shù)
-l  信號,若果不加信號的編號參數(shù)往毡,則使用“-l”參數(shù)會列出全部的信號名稱
-a  當處理當前進程時蒙揣,不限制命令名和進程號的對應關系
-p  指定kill 命令只打印相關進程的進程號,而不發(fā)送任何信號
-s  指定發(fā)送信號
-u  指定用戶

介紹:

  • 1开瞭、kill命令可以帶信號號碼選項懒震,也可以不帶。如果沒有信號號碼惩阶,kill命令就會發(fā)出終止信號(15)挎狸,這個信號可以被進程捕獲,使得進程在退出之前可以清理并釋放資源断楷。也可以用kill向進程發(fā)送特定的信號锨匆。例如:
    kill -2 123
    它的效果等同于在前臺運行PID為123的進程時按下Ctrl+C鍵。但是冬筒,普通用戶只能使用不帶signal參數(shù)的kill命令或最多使用-9信號恐锣。
  • 2、kill可以帶有進程ID號作為參數(shù)舞痰。當用kill向這些進程發(fā)送信號時土榴,必須是這些進程的主人。如果試圖撤銷一個沒有權(quán)限撤銷的進程或撤銷一個不存在的進程响牛,就會得到一個錯誤信息玷禽。
  • 3、可以向多個進程發(fā)信號或終止它們呀打。
  • 4矢赁、當kill成功地發(fā)送了信號后,shell會在屏幕上顯示出進程的終止信息贬丛。有時這個信息不會馬上顯示撩银,只有當按下Enter鍵使shell的命令提示符再次出現(xiàn)時,才會顯示出來豺憔。
  • 5额获、應注意,信號使進程強行終止恭应,這常會帶來一些副作用抄邀,如數(shù)據(jù)丟失或者終端無法恢復到正常狀態(tài)。發(fā)送信號時必須小心昼榛,只有在萬不得已時境肾,才用kill信號(9),因為進程不能首先捕獲它。要撤銷所有的后臺作業(yè)准夷,可以輸入kill 0。因為有些在后臺運行的命令會啟動多個進程莺掠,跟蹤并找到所有要殺掉的進程的PID是件很麻煩的事衫嵌。這時,使用kill 0來終止所有由當前shell啟動的進程楔绞,是個有效的方法。

3.示例

實例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) 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
說明:
只有第9種信號(SIGKILL)才可以無條件終止進程唇兑,其他信號進程都有權(quán)利忽略酒朵。    下面是常用的信號:
HUP    1    終端斷線
INT     2    中斷(同 Ctrl + C)
QUIT    3    退出(同 Ctrl + \)
TERM   15    終止
KILL    9    強制終止
CONT   18    繼續(xù)(與STOP相反, fg/bg命令)
STOP    19    暫停(同 Ctrl + Z)

實例2:得到指定信號的數(shù)值
[root@localhost test6]# kill -l KILL
[root@localhost test6]# kill -l SIGKILL
[root@localhost test6]# kill -l TERM
[root@localhost test6]# kill -l SIGTERM
[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.log
root      3370  2822  0 16:21 pts/0    00:00:00 grep vim
[root@localhost test6]# kill 3268 

實例4:徹底殺死進程
命令:kill –9 3268   // -9 強制殺掉進程

ps: init是Linux系統(tǒng)操作中不可缺少的程序之一蔫耽。所謂的init進程,它是一個由內(nèi)核啟動的用戶級進程留夜。內(nèi)核自行啟動(已經(jīng)被載入內(nèi)存匙铡,開始運行,并已初始化所有的設備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)等)之后碍粥,就通過啟動一個用戶級程序init的方式鳖眼,完成引導進程。所以,init始終是第一個進程(其進程編號始終為1)嚼摩。 其它所有進程都是init進程的子孫钦讳。init進程是不可殺的!


killall 命令
  Linux系統(tǒng)中的killall命令用于殺死指定名字的進程(kill processes by name)枕面。我們可以使用kill命令殺死指定進程PID的進程愿卒,如果要找到我們需要殺死的進程,我們還需要在之前使用ps等命令再配合grep來查找進程膊畴,而killall把這兩個過程合二為一掘猿,是一個很好用的命令。

  • 1.命令格式:killall[參數(shù)][進程名]
  • 2.命令參數(shù)
-Z 只殺死擁有scontext 的進程
-e 要求匹配進程名稱
-I 忽略小寫
-g 殺死進程組而不是進程
-i 交互模式唇跨,殺死進程前先詢問用戶
-l 列出所有的已知信號名稱
-q 不輸出警告信息
-s 發(fā)送指定的信號
-v 報告信號是否成功發(fā)送
-w 等待進程死亡
--help 顯示幫助信息
--version 顯示版本顯示

3.范例

1:殺死所有同名進程
    killall nginx
    killall -9 bash

2.向進程發(fā)送指定信號
    killall -TERM ngixn  或者  killall -KILL nginx

PKILL命令
  pkill 和killall 應用方法差不多稠通,也是直接殺死運行中的程式;如果你想殺掉單個進程买猖,請用kill 來殺掉改橘。
  應用方法:#pkill 正在運行的程式名


遇到一個問題:
在使用時,在ubuntu18.04下操作uwsgi進程
使用killall -9 uwsgi命令無效
使用pkill -9 uwsgi命令成功
不知道什么原因...


感謝:https://www.cnblogs.com/rsky/p/4886043.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玉控,一起剝皮案震驚了整個濱河市飞主,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖碌识,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碾篡,死亡現(xiàn)場離奇詭異,居然都是意外死亡筏餐,警方通過查閱死者的電腦和手機开泽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進店門跷跪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弛矛,“玉大人裙品,你說我怎么就攤上這事啤呼≥赫” “怎么了槐雾?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵砌们,是天一觀的道長赤嚼。 經(jīng)常有香客問我旅薄,道長辅髓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任少梁,我火速辦了婚禮利朵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘猎莲。我一直安慰自己绍弟,他們只是感情好,可當我...
    茶點故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布著洼。 她就那樣靜靜地躺著樟遣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪身笤。 梳的紋絲不亂的頭發(fā)上豹悬,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天,我揣著相機與錄音液荸,去河邊找鬼瞻佛。 笑死,一個胖子當著我的面吹牛娇钱,可吹牛的內(nèi)容都是我干的伤柄。 我是一名探鬼主播,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼文搂,長吁一口氣:“原來是場噩夢啊……” “哼适刀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起煤蹭,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤笔喉,失蹤者是張志新(化名)和其女友劉穎取视,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體常挚,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡作谭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奄毡。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片丢早。...
    茶點故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秧倾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情傀缩,我是刑警寧澤那先,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站赡艰,受9級特大地震影響售淡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜慷垮,卻給世界環(huán)境...
    茶點故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一揖闸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧料身,春花似錦汤纸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至幔烛,卻和暖如春啃擦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饿悬。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工令蛉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人狡恬。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓珠叔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弟劲。 傳聞我的和親對象是個殘疾皇子运杭,可洞房花燭夜當晚...
    茶點故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容