在linux环境,大多数人采用 kill -9 pid 停止一个服务器进程,但kill -9 常会带来一些问题;linux
在Linux信号机制中,存在多种进程中断信号(Linux信号列表 )。其中比较典型的有 shell
HUP 1 终端断线 INT 2 中断 QUIT 3 退出 TERM 15 终止 KILL 9 强制终止 CONT 18 继续 STOP 19 暂停
SIGNKILL(9) 和 SIGNTERM(15) 的区别在于:
SIGNKILL(9) 的效果是当即杀死进程. 该信号不能被阻塞, 处理和忽略。
SIGNTERM(15) 的效果是正常退出进程,退出前能够被阻塞或回调处理。而且它是Linux缺省的程序中断信号。服务器
标准的kill进程方式:kill pid
google
注释: 标准的kill命令,默认采用信号(signal)号是15,一般都能达到目的,终止有问题的进程,并把进程的资源释放给系统。然而,若是进程启动了子进程,只杀死父进程,子进程仍在运行,所以仍消耗资源。为了防止这些所谓的“僵尸进程”,应确保在杀死父进程以前,先杀死其全部的子进程。 spa