首页/开发/CI/CD 与发布速查/应用优雅退出(SIGTERM 处理)
发布策略60 条

应用优雅退出(SIGTERM 处理)

应用对 SIGTERM 的处理决定退出质量:停止接收新请求、处理完在途请求、释放资源后以正常状态退出;配合探针与 preStop 可降低发布期的 5xx。

CI/CD 与发布速查开发更新于 2026-10-12
信号容器主进程收到 SIGTERM
正确动作停收新连接→处理在途→退出(exit 0)
兜底宽限期内未退出则 SIGKILL
语言侧多数框架需显式注册信号处理

Python 示例

Python 示例
import signal, sys
def handle(signum, frame):
    server.shutdown()
    sys.exit(0)
signal.signal(signal.SIGTERM, handle)
优雅退出时限要小于宽限期;停机与发布共用同一套退出逻辑,避免只在一个路径上验证。

易错点

  • 忽略 SIGTERM:进程直接被终止,在途请求全部失败
  • 优雅退出耗时超过宽限期:SIGKILL 兜底,优雅逻辑形同虚设

数据来源与参考

  • Kubernetes 文档《Termination of Pods》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌