killall 命令nginx
Linux系統中的killall命令用於殺死指定名字的進程(kill processes by name)。咱們可使用kill命令殺死指定進程PID的進程,若是要找到咱們須要殺死的進程,咱們還須要在以前使用ps等命令再配合grep來查找進程,而killall把這兩個過程合二爲一,是一個很好用的命令。shell
1.命令格式vim
killall[參數][進程名]bash
2.命令參數數據結構
-Z 只殺死擁有scontext 的進程 -e 要求匹配進程名稱 -I 忽略小寫 -g 殺死進程組而不是進程 -i 交互模式,殺死進程前先詢問用戶 -l 列出全部的已知信號名稱 -q 不輸出警告信息 -s 發送指定的信號 -v 報告信號是否成功發送 -w 等待進程死亡 --help 顯示幫助信息 --version 顯示版本顯示
3.範例工具
1:殺死全部同名進程 killall nginx killall -9 bash 2.向進程發送指定信號 killall -TERM ngixn 或者 killall -KILL nginx
KILL 命令spa
Linux中的kill命令用來終止指定的進程(terminate a process)的運行,是Linux下進程管理的經常使用命令。一般,終止一個前臺進程可使用Ctrl+C鍵,可是,對於一個後臺進程就須用kill命令來終止,咱們就須要先使用ps/pidof/pstree/top等工具獲取進程PID,而後使用kill命令來殺掉該進程。kill命令是經過向進程發送指定的信號來結束相應進程的。在默認狀況下,採用編號爲15的TERM信號。TERM信號將終止全部不能捕獲該信號的進程。對於那些能夠捕獲該信號的進程就要用編號爲9的kill信號,強行「殺掉」該進程。code
1.命令格式blog
kill[參數][進程id]進程
2.命令參數
-l 信號,若果不加信號的編號參數,則使用「-l」參數會列出所有的信號名稱
-a 當處理當前進程時,不限制命令名和進程號的對應關係
-p 指定kill 命令只打印相關進程的進程號,而不發送任何信號
-s 指定發送信號
-u 指定用戶
一、kill命令能夠帶信號號碼選項,也能夠不帶。若是沒有信號號碼,kill命令就會發出終止信號(15),這個信號能夠被進程捕獲,使得進程在退出以前能夠清理並釋放資源。也能夠用kill向進程發送特定的信號。例如:
kill -2 123
#它的效果等同於在前臺運行PID爲123的進程時按下Ctrl+C鍵。可是,普通用戶只能使用不帶signal參數的kill命令或最多使用-9信號。
二、kill能夠帶有進程ID號做爲參數。當用kill向這些進程發送信號時,必須是這些進程的主人。若是試圖撤銷一個沒有權限撤銷的進程或撤銷一個不存在的進程,就會獲得一個錯誤信息。
三、能夠向多個進程發信號或終止它們。
四、當kill成功地發送了信號後,shell會在屏幕上顯示出進程的終止信息。有時這個信息不會立刻顯示,只有當按下Enter鍵使shell的命令提示符再次出現時,纔會顯示出來。
五、應注意,信號使進程強行終止,這常會帶來一些反作用,如數據丟失或者終端沒法恢復到正常狀態。發送信號時必須當心,只有在萬不得已時,才用kill信號(9),由於進程不能首先捕獲它。要撤銷全部的後臺做業,能夠輸入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)才能夠無條件終止進程,其餘信號進程都有權利忽略。 下面是經常使用的信號:
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 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系統操做中不可缺乏的程序之一。所謂的init進程,它是一個由內核啓動的用戶級進程。內核自行啓動(已經被載入內存,開始運行,並已初始化全部的設備驅動程序和數據結構等)以後,就經過啓動一個用戶級程序init的方式,完成引導進程。因此,init 始終是第一個進程(其進程編號始終爲1)。 其它全部進程都是init進程的子孫。init進程是不可殺的!
PKILL
pkill 和killall 應用方法差很少,也是直接殺死運行中的程式;若是你想殺掉單個進程,請用kill 來殺掉。 應用方法:#pkill 正在運行的程式名