使用了kill -9 pid
,那么我们关闭的程序必须立刻强制关闭
使用 kill -15 pid
的时候,Linux则会发送一个关闭信号(SIGTERM
)给当前程序,然后程序根据自己的情况选择何时关闭
kill -15 pid 可以将 -15 省略,所以我们平常使用的kill命令是优雅关闭的
然后看到这两个kill的区别,我就想到了dubbo里的优雅停机:
dubbo-优雅停机
- 如果对服务提供端执行优雅停机:
- 停止时,先标记为不接收新请求,新请求过来时直接报错,让客户端重试其它机器。
- 然后,检测线程池中的线程是否正在运行,如果有,等待所有线程执行完成,除非超时,则强制关闭。
- 如果对服务消费端执行优雅停机:
- 停止时,不再发起新的调用请求,所有新的调用在客户端即报错。
- 然后,检测有没有请求的响应还没有返回,等待响应返回,除非超时,则强制关闭。