我一直在寻找这个问题的答案,并且必须找到像我所经历的那样安静的东西!
我在 AWS 上设置了一个 Ubuntu 实例,标准配置,中层。
我通过 ssh 进入服务器,然后在 Node 中运行一个脚本,我使用
sudo nodejs server.js
启动该脚本。
当它运行时,它有一些工作正常的 REST 端点,并且这些端点写入 mongodb(也工作得很好)。但是,如果我离开计算机并第二天回来,我会得到标准的 SSH
broken pipe
,这很好。但!当我尝试使用 REST api 时,节点 server.js 显然没有运行。
我是唯一使用这个 api 的人,所以我不认为错误会导致它崩溃。
有人经历过这样的事情吗?也许我缺少一个配置?
刚刚有朋友帮我回答了,
sudo nodejs server.js & > mylog.out
这使得它在后台运行并将标准输出打印到日志而不是无处可去(由于管道损坏而无处可去)
对我来说添加
sourceStream.on('error', (e) => { /* your handle logic here */ })
有助于解决类似的问题。但非常重要的是将其添加到错误的来源,在其他情况下nodejs,将使你的程序崩溃,因为uncaughtException被发出
就我而言,我将处理程序放入 pipe 和 writableStream,但不是 sourceStream