Linux 的 Kill -9命令

大家對kill -9 肯定非常熟悉,在工作中也經常用到。特別是你去重啓tomcat時。


可是多半看來,我們對-9的理解只是表面而已。

很少有人(包括我)認真的去了解一下 kill -n 這個n到底是什麼東東。自我批評一下。

好吧。我們來好好的認識一下這個熟悉的陌生人。

1)kill

在shell下面打kill可以看到kill的語法:

[html] view plain copy
  1. [root@cent-1 opt]# kill  
  2. kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]  

來個中文版的:

從help中可以清晰的看到 -n 指的是 信號編號,那問題來了,“信號編號”是哪位大神???

2)kill -l(查看Linux/Unix的信號變量)

這麼多呀!! 今天就單獨說一下SIGKILLSIGTERM

3)(kill pid) 、( kill -15 pid)

系統會發送一個SIGTERM的信號給對應的程序。當程序接收到該signal後,將會發生以下的事情

  1. 程序立刻停止
  2. 當程序釋放相應資源後再停止
  3. 程序可能仍然繼續運行

      大部分程序接收到SIGTERM信號後,會先釋放自己的資源,然後在停止。但是也有程序可以在接受到信號量後,做一些其他的事情,並且這些事情是可以

      配置的。如果程序正在等待IO,可能就不會立馬做出相應。

  也就是說,SIGTERM多半是會被阻塞的、忽略。

4)kill  -9 pid

你不是可以不響應 SIGTERM嗎??那好,我給你下一道必殺令,我看你還不乖乖的。多半admin會用這個命令,用來強制儘快終止一個進程。

不過,也不是所有的程序都會乖乖聽話,總有那些狀態下的程序無法立刻相應。

 

附錄:

linux signals

Signal Name Number Description
SIGHUP 1 Hangup (POSIX)
SIGINT 2 Terminal interrupt (ANSI)
SIGQUIT 3 Terminal quit (POSIX)
SIGILL 4 Illegal instruction (ANSI)
SIGTRAP 5 Trace trap (POSIX)
SIGIOT 6 IOT Trap (4.2 BSD)
SIGBUS 7 BUS error (4.2 BSD)
SIGFPE 8 Floating point exception (ANSI)
SIGKILL 9 Kill(can't be caught or ignored) (POSIX)
SIGUSR1 10 User defined signal 1 (POSIX)
SIGSEGV 11 Invalid memory segment access (ANSI)
SIGUSR2 12 User defined signal 2 (POSIX)
SIGPIPE 13 Write on a pipe with no reader, Broken pipe (POSIX)
SIGALRM 14 Alarm clock (POSIX)
SIGTERM 15 Termination (ANSI)
SIGSTKFLT 16 Stack fault
SIGCHLD 17 Child process has stopped or exited, changed (POSIX)
SIGCONT 18 Continue executing, if stopped (POSIX)
SIGSTOP 19 Stop executing(can't be caught or ignored) (POSIX)
SIGTSTP 20 Terminal stop signal (POSIX)
SIGTTIN 21 Background process trying to read, from TTY (POSIX)
SIGTTOU 22 Background process trying to write, to TTY (POSIX)
SIGURG 23 Urgent condition on socket (4.2 BSD)
SIGXCPU 24 CPU limit exceeded (4.2 BSD)
SIGXFSZ 25 File size limit exceeded (4.2 BSD)
SIGVTALRM 26 Virtual alarm clock (4.2 BSD)
SIGPROF 27 Profiling alarm clock (4.2 BSD)
SIGWINCH 28 Window size change (4.3 BSD, Sun)
SIGIO 29 I/O now possible (4.2 BSD)
SIGPWR 30 Power failure restart (System V)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章