@Author : Spinach | GHB
@Link : http://blog.csdn.net/bocai8058
kill命令詳解
概念
kill命令用來刪除執行中的程序或工作。
kill可將指定的信息送至程序。預設的信息爲SIGTERM(15),可將指定程序終止。若仍無法終止該程序,可使用SIGKILL(9)信息嘗試強制刪除程序。程序或工作的編號可利用ps指令或job指令查看。
語法、選項和參數
語法
kill (選項) (參數)
選項
-a:當處理當前進程時,不限制命令名和進程號的對應關係;
-l <信息編號>:若不加<信息編號>選項,則-l參數會列出全部的信息名稱;
-p:指定kill 命令只打印相關進程的進程號,而不發送任何信號;
-s <信息名稱或編號>:指定要送出的信息;
-u:指定用戶。
參數
進程或作業識別號:指定要刪除的進程或作業。
例程
# 列出所有信號名稱
[root@localhost local]$ 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)
KILL 9 強制終止
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
先用ps查找進程,然後用kill殺掉:
[root@localhost local]$ 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 local]$ kill -9 3268
[root@localhost local]$ kill -9 3268
-bash: kill: (3268) - 沒有那個進程
kill -9、kill -15
kill 與 kill -15
系統會發送一個SIGTERM的信號給對應的程序。當程序接收到該signal後,將會發生以下的事情:
- 程序立刻停止;
- 當程序釋放相應資源後再停止;
- 程序可能仍然繼續運行;
大部分程序接收到SIGTERM信號後,會先釋放自己的資源,然後在停止。但是也有程序可以在接受到信號量後,做一些其他的事情,並且這些事情是可以配置的。如果程序正在等待IO,可能就不會立馬做出相應。也就是說,SIGTERM多半是會被阻塞的、忽略。
kill -9
kill -9 pid等於kill -s 9 pid,表示強制,儘快終止一個進程。多半admin會用這個命令。
因此kill - 9表示強制殺死該進程;與SIGTERM相比,這個信號不能被捕獲或忽略,同時接收這個信號的進程在收到這個信號時不能執行任何清理。
引用:http://man.linuxde.net/kill | https://www.cnblogs.com/liuhouhou/p/5400540.html