Shutdown Check

搜索文档

查找页面或章节

SC000:优雅关闭验证通过

SC000(优雅关闭验证通过)是检查通过的结果:说明 shutdown-check 证明了服务的哪些行为、没有覆盖什么,以及如何在 CI 中持续运行。

SC000 表示按配置检查的优雅关闭(graceful shutdown)行为全部通过:进行中的请求都已完成,进程在截止时间前正确退出,端口也不再接受连接。

诊断码SC000 PASS
阶段通过
CLI 退出码0
含义每个进行中的请求都以预期的响应结束,服务在截止时间前以预期的退出码退出,并关闭了端口。
输出信息
  • Graceful shutdown verified
首先检查无需修复。把检查保留在 CI 中,一旦出现回归,构建就会失败。

这次测试证明了什么?

服务通过了配置中启用的每一项检查:

  1. 启动前,测试端口是空闲的。
  2. 服务成功启动并进入就绪状态。
  3. 发送 SIGTERM 前,测试请求已在进行中。
  4. 每个进行中的请求都返回了预期的状态码和响应体。
  5. 进程在截止时间前以预期的退出码退出。
  6. 进程退出后,端口已关闭。

如果你启用了撤回就绪状态、拒绝新请求或重复发送信号,这些检查也都通过了。

测试没有证明什么?

结果只覆盖配置里的路由和条件。它不验证数据库写入、队列消费者、WebSocket、HTTP/2 流,也不验证 HTTP 响应返回后仍在继续的工作。它同样不测试 Kubernetes 的 endpoint 传播,也不测试容器的 preStop 钩子。

选一个能代表真实慢操作的测试请求,并把测试保留在 CI 中,这样关闭行为一旦出现回归,在部署前就会失败。

怎样让这个结果一直有参考价值?

路由、启动命令或平台的截止时间有变化时,重新检查配置。如果测试请求变得快很多,或者部署的入口换了,测试可能仍然通过,却已经不能代表生产环境。

在 CI 中保留完整的时间线或 JUnit 报告。正常通过时,时间线的顺序是:SIGTERM 之前工作已在进行,之后响应完成,然后进程退出,最后才是 shutdown verified。