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