捕获node.js崩溃原因

dfi*_*ovi 7 node.js

我有一个用node.js编写的脚本,它使用'net'库并通过tcp与远程服务通信.这个脚本是使用'node script.js >> log.txt'命令启动的,该脚本中使用console.log()函数记录的所有内容都写入log.txt,但有时脚本死了,我找不到原因而且什么也没找到在脚本崩溃的时间周围登录log.txt.

我怎样才能捕获崩溃原因?

Alf*_*red 11

你不能听听uncaughtException活动吗?沿着=>的路线

process.on('uncaughtException', function (err) {
  console.log('Caught exception: ' + err);
});
Run Code Online (Sandbox Code Playgroud)

PS:之后,根据FelixGeisendörfer的这篇文章,建议您重新启动流程


Wes*_*son 6

通过分割stdout和捕获异常要容易得多stderr。像这样:

node script.js 1> log.out 2> err.out
Run Code Online (Sandbox Code Playgroud)

默认情况下,node将正常输出记录到stdout,我相信您是使用捕获的>>

如注释中所述,分段错误是外壳(不一定是您的程序)向stderr发出的信号。有关其他选项,请参见此unix.stackexchange答案。