日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

[Linux] killall 、kill 、pkill 命令详解

發(fā)布時間:2025/3/21 linux 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [Linux] killall 、kill 、pkill 命令详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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 nginxkillall -9 bash2.向進程發(fā)送指定信號killall -TERM ngixn 或者 killall -KILL nginx

?

?

?

KILL 命令

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

?

  1.命令格式

    kill[參數(shù)][進程id]

  2.命令參數(shù)

-l? 信號,若果不加信號的編號參數(shù),則使用“-l”參數(shù)會列出全部的信號名稱 -a? 當處理當前進程時,不限制命令名和進程號的對應(yīng)關(guān)系 -p? 指定kill 命令只打印相關(guān)進程的進程號,而不發(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、應(yīng)注意,信號使進程強行終止,這常會帶來一些副作用,如數(shù)據(jù)丟失或者終端無法恢復(fù)到正常狀態(tài)。發(fā)送信號時必須小心,只有在萬不得已時,才用kill信號(9),因為進程不能首先捕獲它。要撤銷所有的后臺作業(yè),可以輸入kill 0。因為有些在后臺運行的命令會啟  動多個進程,跟蹤并找到所有要殺掉的進程的PID是件很麻煩的事。這時,使用kill 0來終止所有由當前shell啟動的進程,是個有效的方法。

?

  2.范例

實例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 9 [root@localhost test6]# kill -l SIGKILL 9 [root@localhost test6]# kill -l TERM 15 [root@localhost test6]# kill -l SIGTERM 15 [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)存,開始運行,并已初始化所有的設(shè)備驅(qū)動程序和數(shù)據(jù)結(jié)構(gòu)等)之后,就通過啟動一個用戶級程序init的方式,完成引導進程。所以,init  始終是第一個進程(其進程編號始終為1)。 其它所有進程都是init進程的子孫。init進程是不可殺的!

?

?

PKILL

  pkill 和killall 應(yīng)用方法差不多,也是直接殺死運行中的程式;如果你想殺掉單個進程,請用kill 來殺掉。
  應(yīng)用方法:#pkill??? 正在運行的程式名

?

作者:rsky
出處:http://www.cnblogs.com/rsky
歡迎轉(zhuǎn)載,但請務(wù)必注明出處 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的[Linux] killall 、kill 、pkill 命令详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。