Shutdown Check

搜索文档

查找页面或章节

SC002:缺少启动命令

SC002(缺少启动命令)表示 runCheck 收到的配置中 command 数组为空。本文说明为什么 CLI 显示的是配置错误,以及如何修复。

SC002 表示 runCheck() 收到的配置里没有启动命令。没有可启动的东西,所以运行在创建进程之前就结束了。

诊断码SC002 FAIL
阶段启动前
CLI 退出码1
含义配置中没有用于启动服务的命令。
输出信息
  • No launch command configured
首先检查把 command 设为参数数组,例如 ["node", "server.js"]。

为什么只有 runCheck() 会出现这个诊断码?

CLI 和 checkShutdown() 会先校验输入。它们把空的 command 当作配置错误拒绝,在 runner 启动前就退出或抛出异常。runCheck() 接收的是已经校验过的 CheckConfig,所以手动构造的对象可能触发这个诊断码。

如何修复?

调用 runCheck() 之前,先用 parseConfig() 或 loadConfig() 校验输入:

import { parseConfig, runCheck } from "shutdown-check";
 
const config = parseConfig({
  command: ["node", "dist/server.js"],
  baseUrl: "http://127.0.0.1:3000",
  readiness: { path: "/health" },
  workload: { path: "/slow", started: { type: "response-headers" } },
});
 
const result = await runCheck(config);

大多数脚本和测试改用 checkShutdown() 即可。它一步完成对象校验和检查。

如何确认已修复?

打印或查看解析后的配置,确认 command[0] 是可执行文件。下一次运行应该产生 process launched 事件。如果可执行文件或入口文件不对,结果会变成 SC101,捕获的 stderr 会说明原因。

不要为了消除 TypeScript 报错,把任意对象强制转换成 CheckConfig。这样只是去掉了类型错误,并没有加上运行时校验。