退出代码
【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。