我有一个用 node.js 编写的脚本,它使用“net”库并通过 tcp 与远程服务通信。该脚本使用“node script.js >> log.txt”命令启动,该脚本中使用 console.log() 函数记录的所有内容都被写入 log.txt,但有时脚本会死掉,我找不到原因,什么也没有在脚本崩溃时登录 log.txt。
如何捕获崩溃原因?
我有一个用 node.js 编写的脚本,它使用“net”库并通过 tcp 与远程服务通信。该脚本使用“node script.js >> log.txt”命令启动,该脚本中使用 console.log() 函数记录的所有内容都被写入 log.txt,但有时脚本会死掉,我找不到原因,什么也没有在脚本崩溃时登录 log.txt。
如何捕获崩溃原因?
你不能听uncaughtException
事件吗?类似于 => 的东西
process.on('uncaughtException', function (err) {
console.log('Caught exception: ' + err);
});
PS:之后建议您根据Felix Geisendörfer 的这篇文章重新启动流程
stdout
通过拆分和捕获异常要容易得多stderr
。像这样:
node script.js 1> log.out 2> err.out
默认情况下,节点将正常输出记录到标准输出,我相信您正在使用>>
.
如评论中所述,分段错误是 shell 向 stderr 发出的信号,不一定是您的程序。有关其他选项,请参阅此unix.stackexchange答案。