Shutdown Check

搜索文档

查找页面或章节

SC112:在 SIGTERM 前已退出

SC112(在 SIGTERM 前已退出)表示从启动确认通过到发出信号的间隙里,服务或某个测试请求已经结束。让测试请求运行得更久一些。

SC112 表示启动确认通过之后、shutdown-check 发送 SIGTERM 之前,进程或测试请求已经结束。这个间隙很短,所以出现这个诊断码,通常说明测试请求的时长只是勉强够用。

诊断码SC112 FAIL
阶段启动与进行中的工作
CLI 退出码1
含义就在发送信号前的一刻,服务或某个测试请求已经结束。
输出信息
  • Service or work exited before SIGTERM could be sent
首先检查让测试请求的耗时长于启动它所需的时间,确保 SIGTERM 到达时它仍在运行。

如何修复?

让测试请求的时长明显长于确认它已开始、再发送信号所需的时间。加一到两秒的可控延迟通常就够了。

另外检查:

  • 服务不是设计成处理完一个请求就退出。
  • 探测路由报告工作开始的时间没有太晚。
  • 没有定时器或后台任务让进程停止。
  • 测试路由在繁忙的 CI runner 上表现一致。

不要靠调大 shutdown.deadlineMs 来解决:这个计时器在信号发出后才开始,影响不到这个间隙。

如何确认已修复?

修复后的时间线中,signal sent 紧跟在 work confirmed active 之后,两者之间没有进程退出或请求结束的事件。在最慢的 CI 环境中多运行几次,确认这段时间余量是可靠的。

如果是服务本身在这个间隙里退出,去应用日志里找定时器、一次性运行模式或未处理的错误,而不是延长测试请求。