先看一下linux对kill命令的描述:
DESCRIPTION
The command kill sends the specified signal to the specified process or process group. If no signal is specified, the TERM signal is sent.
The TERM signal will kill processes which do not catch this signal. For other processes, it may be necessary to use the KILL (9) signal, since this signal cannot be caught.
...
原来,kill命令可以发送多个不同的信号。默认(缺省)情况下,kill发送的是TERM,即15(SIGTERM)信号,"kill PID"与"kill -15 PID"是一样的。这个信号通常会要求程序自己正常退出,是一种比较安全的用法。但它是可以被阻塞,处理和忽略的,所以对于有的进程,会中止失败。
另一个常用的信号是9(SIGKILL),这个命令表示立即结束程序,是不能被阻塞,处理和忽略的。在TERM信号失效的情况下,可以尝试使用"kill -9 PID"。使用"kill -l",可以查看更多的信号列表。
虽然"kill -9"命令已经很强大,但也有可能还是不能达到目的。这时候,还有一个办法,就是使用"ps -ef"找出待中止的进程的父进程(PPID),然后使用kill或killall命令杀掉它。