【问题标题】:Node.js - events.js:154 throw err write EPIPE; Program CrashingNode.js - events.js:154 throw err write EPIPE;程序崩溃
【发布时间】:2016-02-26 00:49:25
【问题描述】:

试图运行我的 Node.js 程序,它已经运行了很长时间,现在它突然......不是。我正在尝试找出问题所在,并且我认为如果我在此处发布以尝试追踪它会有所帮助。这是日志输出:

events.js:154
    throw er; // Unhandled 'error' event
    ^

Error: write EPIPE
    at exports._errnoException (util.js:856:11)
    at WriteWrap.afterWrite (net.js:767:14)

坦率地说,我不知道它为什么会抛出 EPIPE 错误,我已经检查过没有运行可能干扰的东西,并且它运行在与以前完全相同的 shell 中。如果有什么我应该补充的,请告诉我。

【问题讨论】:

标签: javascript node.js epipe


【解决方案1】:

引用doc

EPIPE:在没有进程读取数据的管道、套接字或 FIFO 上写入。常见于nethttp 层,表示正在写入的流的远程端已关闭。

当另一端终止连接时,蒸汽可能是pipesocket。这是一个运行时错误;除了结束你的结局之外,你无能为力。

请检查您的程序中是否有一个写入的大文件或长的http包请求

在这种情况下,使用以下代码可以使您的程序成功退出:

process.stdout.on('error', function( err ) {
    if (err.code == "EPIPE") {
        process.exit(0);
    }
});

【讨论】:

  • 基本上问题(很抱歉花了这么长时间来回答,但我有一段时间没有检查我的 SO 帐户)是该文件没有我的用户帐户访问的适当权限。
【解决方案2】:

在我的情况下,问题在于 question 中讨论的 inotify 观察者的数量

这里是original listen documentation

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

【讨论】:

    【解决方案3】:

    安装 libfontconfig 可能会解决此问题。当我尝试从服务器下载 PDF 时遇到了同样的问题。 libfontconfig 解决了这个问题。

    sudo apt-get install libfontconfig
    

    注意:解决方案来源-> Error: write EPIPE

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 2019-05-13
      • 1970-01-01
      • 1970-01-01
      • 2015-12-20
      相关资源
      最近更新 更多