如何确定 nodejs 是否child_process由于超时而失败



如果我child_process.exec('mycommand', { timeout: 5000 }, callback),我不知道由此产生的错误是由超时还是其他原因引起的。有没有办法确定失败是否是由传递给child_process{ timeout: 5000 }选项引起的?

只有一种方法可能不太可靠。
因此,当您将其用于满足您的需求时要小心

工作原理:

  1. 当超时被触发时,父进程会发出默认的SIGTERM信号,除非您在选项 {killSignal : 'SIGINT'} 中覆盖
  2. 退出子进程后,通过将err.code填充到nullerr.signal填充SIGTERM或任何内容来调用父进程的回调cb(err,stdout,stderr)

因此,您可以在回调中检查err.signal。同样,这不太可靠,因为您可以从任务管理器或使用 shell 的 kill 命令杀死子进程。

相关内容

  • 没有找到相关文章

最新更新