javascript - spawnSync/bin/sh ENOBUFS

标签 javascript node.js

在执行以下行时,错误“ spawnSync/bin/sh ENOBUFS ”在我的 NodeJs 应用程序中非系统地产生:

child_process.execSync(`cd /tmp/myFolder ; tar -xjf myArchive.tar.bz2`);
存档尺寸为 81.5 MB,带有 NVM 的 NodeJs 版本:12.17.0。

最佳答案

问题是 执行同步 模式在 shell 中执行命令,其中有限的缓冲区 (200 Kb) 用于转发执行输出。此外,默认的 shell 执行选项是“ pipe ”,这意味着必须将输出转发给父级。
为了让 shell 忽略执行输出,即将输出转发到/dev/null,从而防止缓冲区被填满,您必须使用“ 忽略 ”执行选项,如下所示:

child_process.execSync(`cd /tmp/myFolder ; tar -xjf myArchive.tar.bz2`, { stdio: 'ignore' });
阅读更多关于 执行 产卵 执行模式 herehere
附言还要考虑这个错误产生 系统地在存档提取期间,当您用完磁盘空间时。

关于javascript - spawnSync/bin/sh ENOBUFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63796633/

相关文章:

javascript - 如何在 FOR 循环中创建暂停或延迟?

javascript - 在react组件中使用箭头函数绑定(bind)函数,而不是在构造函数中绑定(bind)

javascript - 在 ASP.net 中制作 DOS 风格的窗口

javascript - DOM 元素删除时是否删除 jquery 插件

node.js - 什么是对 Express 4 路由器上的某些路由进行身份验证的更好方法?

javascript - 将 Javascript 中完成的字节字符串创建复制到 Python 2.7 中

javascript - PM2 for Node 的正确用法?

javascript - 如何让这个导航栏在滚动时 float 在顶部?

javascript - Node , Angular 错误 : ENOENT: no such file or directory

javascript - req.body 在 20 个条目后自动将数组转换为对象