1. 程式人生 > >04.linux命令-kill pid和kill -9 pid

04.linux命令-kill pid和kill -9 pid

今天學習到關於程序的一些東西,然後百度了下kill。以前我們在測試時也會用到kill的命令去殺程序,有的時候會用kill -9,但從沒想過這兩者的區別。今天算是明白了一點吧,以後如果有什麼領悟,會再做補充。
1)kill

[[email protected] opt]# kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]

2)kill -l
-s 指定傳送的訊號
pid是要終止的程序編號
sigspec表示訊號
通過kill -l可以看到所有的訊號變數,

[[email protected] opt]# 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

3)kill pid

kill pid和kill -s 15 pid含義一樣,表示傳送一個SIGTERM的訊號給對應的程式。程式收到該訊號後,將會發生以下事情,

1 程式立刻停止

2 程式釋放相應資源後立刻停止

3 程式可能仍然繼續執行

大部分程式在接收到SIGTERM訊號後,會先釋放自己的資源,然後再停止。但也有一些程式在收到訊號後,做一些其他事情,並且這些事情是可以配置的。也就是說,SIGTERM多半是會被阻塞,忽略的。
kill -9 pid
kill -9 pid等於kill -s 9 pid,表示強制,儘快終止一個程序。多半admin會用這個命令。