退出代码
【Exit codes】
当没有更多异步操作待处理时,Node.js 通常会以 0 状态码退出。在其他情况下,会使用以下状态码:
【Node.js will normally exit with a 0 status code when no more async
operations are pending. The following status codes are used in other
cases:】
1未捕获的致命异常:发生了未捕获的异常,且未被域或'uncaughtException'事件处理程序处理。2:未使用(Bash 保留用于内置命令误用)3内部 JavaScript 解析错误:Node.js 启动过程中内部的 JavaScript 源代码导致了解析错误。这种情况极为罕见,通常只会在 Node.js 本身开发过程中发生。4内部 JavaScript 执行失败:在 Node.js 启动过程中内部的 JavaScript 源代码在执行时未能返回函数值。这种情况极为罕见,通常只会在开发 Node.js 本身时发生。5致命错误:V8 中发生了无法恢复的致命错误。 通常会在标准错误输出中打印一条以FATAL ERROR为前缀的消息。6非函数内部异常处理程序:发生了未捕获的异常,但内部致命异常处理程序函数被设置为非函数,无法调用。7内部异常处理程序运行时失败:出现了未捕获的异常,内部致命异常处理程序在尝试处理该异常时自身抛出了错误。例如,如果'uncaughtException'或domain.on('error')处理程序抛出错误,就可能发生这种情况。8:未使用。在以前的 Node.js 版本中,退出代码 8 有时表示未捕获的异常。9无效参数:要么指定了未知选项,要么需要值的选项未提供值。10内部 JavaScript 运行时错误:在调用引导函数时,Node.js 引导过程中内部的 JavaScript 源代码抛出了错误。这种情况极其罕见,通常只会在 Node.js 本身开发过程中发生。12无效的调试参数:已设置--inspect和/或--inspect-brk选项,但所选择的端口号无效或不可用。13未解决的顶层 await:在顶层代码中在函数外使用了await,但传入的Promise从未被解决。14快照失败:Node.js 启动时尝试构建 V8 启动快照,但由于未满足应用状态的某些要求而失败。>128信号退出:如果 Node.js 接收到致命信号,例如SIGKILL或SIGHUP,其退出码将为128加上信号代码的值。这是标准的 POSIX 规范,因为退出码定义为 7 位整数,而信号退出会设置高位,然后包含信号代码的值。例如,信号SIGABRT的值为6,因此预期的退出码将为128+6,即134。