Node.js 捕获生成后抛出的 ENOMEM 错误

2024-04-05

我的 Node.js 脚本因使用时抛出 ENOMEM(内存不足)errnoException 而崩溃spawn http://nodejs.org/api/child_process.html.

错误:

child_process.js:935
  throw errnoException(process._errno, 'spawn');
        ^

Error: spawn ENOMEM
  at errnoException (child_process.js:988:11)
  at ChildProcess.spawn (child_process.js:935:11)
  at Object.exports.spawn (child_process.js:723:9)
  at module.exports ([...]/node_modules/zbarimg/index.js:19:23)

我已经在使用监听器了error and exit事件,但如果发生此错误,他们中没有人会被解雇。

My code:

zbarimg = process.spawn('zbarimg', [photo, '-q']);
zbarimg.on('error', function(err) { ... });
zbarimg.on('close', function(code) { ... }); 

完整源代码可用的 https://github.com/electerious/zbarimg.

我能做些什么来防止脚本崩溃吗?如何捕获抛出的 ENOMEM 错误?


我遇到了同样的问题,事实证明,我的系统出现了没有启用交换空间。通过运行命令检查是否是这种情况free -m:

vagrant@vagrant-ubuntu-trusty-64:~$ free -m
             total       used       free     shared    buffers     cached
Mem:          2002        233       1769          0         24         91
-/+ buffers/cache:        116       1885
Swap:            0          0          0

查看底行,我们可以看到总共有 0 字节交换内存。不好。节点可能会非常消耗内存,如果内存耗尽时没有可用的交换空间,则必然会发生错误。

添加交换文件的方法因操作系统和发行版而异,但如果您像我一样运行 Ubuntu,则可以按照以下方法操作添加交换文件的说明 https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04:

  1. sudo fallocate -l 4G /swapfile创建 4 GB 交换文件
  2. sudo chmod 600 /swapfile通过限制对 root 的访问来保护交换文件
  3. sudo mkswap /swapfile将文件标记为交换空间
  4. sudo swapon /swapfile启用交换
  5. echo "/swapfile none swap sw 0 0" | sudo tee -a /etc/fstab在重新启动后保留交换文件(感谢您的提示,bman https://stackoverflow.com/users/177006/bman!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 捕获生成后抛出的 ENOMEM 错误 的相关文章

  • NodeJs 环境变量与配置文件

    实际上 我有一个 NodeJS Express 应用程序 其配置文件包含主机 端口 JWT 令牌 数据库参数等参数 问题是 将这些参数直接保留在环境变量上 没有任何配置文件 并访问它们 而不需要在所有组件和模块中进行 require 配置是
  • 需要使用 iFrame API 隐藏 YouTube 品牌

    我正在使用 YouTube iFrame API 在我的自定义播放器 javascript 播放器 中加载视频 我需要隐藏 Youtube 品牌 但是在 iOS 设备上 它显示带有以下参数的徽标 playerVars fs 1 autopl
  • 通过纯 JavaScript 获取 div 的第 n 个子元素

    我有一个名为 myDiv 的 div 元素 我怎样才能得到 myDiv 的第n个孩子DOM https en wikipedia org wiki Document Object Model操纵 Markup function reveal
  • 有什么方法可以复制 div 的渲染 HTML 吗?

    我正在开发电子邮件签名生成器 我想通过按按钮复制最终签名 而不是手动选择签名并将其复制到剪贴板 这意味着我需要它们的图像 文本和样式 我尝试了几种变体 包括 w3schools 的变体 但没有成功 其中一些只是复制文本 但没有样式 例子 h
  • 调用类实例方法 onclick javascript

    我有一个 javascript 文件 其中包含包含方法函数的类 我想知道如何从 onClick 事件调用类实例方法 function MyClass this instanceData Display Me this DisplayData
  • Dialogflow Fulfillment Webhook 调用失败

    I am new to dialogflow fulfillment and I am trying to retrieve news from news API based on user questions I followed doc
  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • 动态更改温斯顿的日志级别

    我尝试在运行时实现日志级别更改 我一直在关注https github com yannvr Winston dynamic loglevel blob master test https github com yannvr Winston
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table
  • “require(...)”是常见的 JavaScript 模式还是库函数?

    我通常发现这是 node js 脚本 模块以及 phantomJS casperJS 等中的第一行 我很好奇 这是否是服务器端 javascript SSJS 的常见模式 类似于 include在 C C 中或import在 Java 中
  • 如何在 JavaScript 中将变量的内容写入文件[重复]

    这个问题在这里已经有答案了 可能的重复 firefox 如何启用本地 JavaScript 来读取 写入我的 PC 上的文件 https stackoverflow com questions 2846045 firefox how to
  • Node 不断恢复到旧版本

    每次我在控制台中重新启动 vagrant 时 它都会询问我的登录详细信息 然后说Now using node v7 10 0 npm v4 2 0 当我做run nvm install node I get v13 11 0 is alre
  • 函数不会等到 Promise 得到解决

    我正在开发一个简单的不和谐机器人 我正在尝试打印有关某个玩家的一些一般数据 我最近了解了 async await 并尝试将其实现到我的代码中 然而 它似乎不起作用 因为当我第一次触发此代码时 它会打印 null 但在后续触发时 它将打印正确
  • Next.js:错误:React.Children.only 期望接收单个 React 元素子元素

    我有一个名为Nav inside components目录及其代码如下所示 import Link from next link const Nav gt return div a Home a a About a div export d
  • Socket IO 服务器到服务器

    服务器是否可以使用 Socket IO 连接到另一个服务器并被视为客户端 并让它加入房间 接收 io sockets in lobby emit 和更多 第一个服务器也在监听连接 消息 嘿 Brad 下面是我的完整 js 应用程序 供参考
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • 如何使用 GreaseMonkey 让浏览器恢复“/”键?

    Lots of web pages seem to use the key for searching I d like to disable that because 100 of the time I want to use to se
  • 在javascript中创建图像的缩略图方块(不丢失纵横比)

    我正在制作一个客户端拖放文件上传脚本作为书签 在上传之前 我使用 File API 将图像读取为 base64 格式并将其显示为缩略图 This is how my thumbnails look like I want them to l
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对
  • 如何获取符号名称(文字)?

    以下情况 var myVehicle brand Tesla var isMoving Symbol var currentStatus Symbol myVehicle isMoving true myVehicle currentSta

随机推荐

  • 双倍到十六进制字符串并返回

    在 Java 中将双精度数转换为十六进制字符串相当简单 但我该如何做相反的事情呢 我的代码如下 我已经注意到其中NumberFormatException被抛出 大约 2 3 向下 public class HexToDoubleTest
  • 调整许多 PDF 的大小

    我正在编写的程序有许多 大约 1000 个 多页 PDF 问题在于 其中许多页面大小不一致 即使有时在同一文档中也是如此 有谁知道我可以通过编程方式浏览文件并将页面大小调整为我想要的大小的方法吗 这可以是任何语言 我可以在 Adob e A
  • 用于更改字段的 Java Jackson 注释[重复]

    这个问题在这里已经有答案了 我必须调用第 3 方 API 来获取货币汇率 但返回的 JSON 不断变化 如果我请求MYR to USD转换 它会返回我 MYR USD 0 246731 所以如果我要求KRW to USD 它会返回我 KRW
  • ASP.NET MVC 视图 - 我可以使用代码隐藏吗

    我是 MVC 新手 我注意到视图页面由于所有混合的脚本标签看起来非常糟糕 在视图代码隐藏的方法中生成 HTML 然后将方法的字符串结果作为单个脚本插入 是否有意义 例如 div div 这是否违背MVC理念 由于其他原因 例如性能 而变得愚
  • Swift 上的 +++ 和 <<< 是什么?

    我只是从这个知道github项目 https github com xmartlabs Eureka usage斯威夫特有 and lt lt lt 运营商 我很难在谷歌上搜索这个 因为 and lt lt lt 也许某种特殊字符根本不会出
  • openSSL 的 PKCS#11 引擎

    我正在尝试在 Windows 7 下设置 openSSL 以使用供应商特定的安全模块 我从供应商那里得到了一个 PKCS 11 API dll 比如说vendor dll PKCS 11 引擎是根据https github com Open
  • 多久轮询一次 wifi 信号强度?

    理想情况下 我希望近乎实时地监控无线网络的信号强度 比如每 100 毫秒一次 但如此高的频率可能有点过大了 我正在使用托管无线网络 http managedwifi codeplex com 库轮询 RSSI 我实例化一个WlanClien
  • 如何更改Linux中每个用户的默认最大进程数

    我在更改 Linux 中用户的默认进程数时遇到了问题 我尝试过编辑 etc security limits conf文件并添加以下行 malintha hard nproc 10000 保存后我尝试在终端上执行以下命令 ulimit u 它
  • 固定位置水平滚动条

    我有一个很长的 div 比方说比屏幕长 带有一个水平滚动条 出现在 div 的底部 我希望水平滚动条出现在窗口的底部 而不是出现在 div 的底部 我的情况类似于这把小提琴 http jsfiddle net xaTe9 1 而且我真的无法
  • Spinner:当所选项目保持不变时,不会调用 onItemSelected

    我有一个OnItemSelectedListener for my Spinner 但当所选项目与前一项相同时 不会调用它 显然是OnClickListener不是一个选项Spinner 我需要捕捉用户每次点击某个项目的时间 任何想法 也许
  • 在磁盘上存储密码的安全策略

    我正在构建一套需要定期访问数据库的批处理作业 在 Solaris 10 计算机上运行 由于 不可更改的 设计限制 我们需要使用特定的程序来连接它 该接口要求我们通过命令行传递纯文本密码才能连接到数据库 这是一种糟糕的安全做法 但我们仍坚持这
  • 文件名中 TCL 通配符/glob 的使用

    我有这样的代码 proc myProc first last for set i first i lt last incr i set i cur PlainText i
  • 有没有办法获取特定城市的所有 Facebook 活动?

    我可以获取特定城市的所有 Facebook 活动吗 我所需要的只是事件 ID 没有别的 它应该是所有事件 公共 而不仅仅是某人的事件 Facebook 会让我们获取这些信息吗 Elmcity 对活动标题中的关键字进行简单搜索 例如尝试 兰开
  • 使滚动条仅在将鼠标悬停在 Div 上时可见?

    我试图弄清楚如何拥有一个可滚动的 div 仅在悬停时显示其滚动条 示例是 Google 图片搜索 在下图中 您可以看到左侧边栏在将鼠标悬停在其上方之前似乎无法滚动 这可以通过 CSS 实现还是需要 Javascript 如果可能的话 也许一
  • NodeJS 从 AWS S3 存储桶下载文件

    我正在尝试在 NodeJS Express 中创建一个端点 用于从我的 AWS S3 存储桶下载内容 它运行良好 我可以在客户端下载文件 但我也可以在 网络 选项卡中看到流预览 这很烦人 QUESTION 我想知道我所做的是否正确并且是一个
  • Rundeck - 我创建的用于运行 python 脚本的作业调用不同的 python

    我对使用 Rundeck 还很陌生 我的工作应该是执行一个 python 文件 只是为了给您一个概述 我的设备有 python 3 8 5 和 3 7 Rundeck 使用版本 3 7 即使在我的环境变量中我将 PY HOME 设置为版本
  • 通过 Facebook Open Graph API 搜索视频

    我知道我们可以使用以下方法在 Open Graph API 中搜索公共对象 例如帖子 事件 签到 但是我无法搜索视频对象 有没有办法使用标题或描述在 Facebook 中搜索视频 您可以通过 FQL 使用某些属性搜索视频 http deve
  • background.html 与 background.js - chrome 扩展

    我在这里真的很困惑 我想了解 chrome 扩展的文件架构 我正在阅读这篇文档 https developer chrome com extensions overview arch https developer chrome com e
  • 尝试将服务注入角度组件时出错“异常:无法解析组件的所有参数”,为什么?

    我已经用 Angular 构建了一个基本的应用程序 但遇到了一个奇怪的问题 我无法将服务注入到我的一个组件中 然而 它可以很好地注入我创建的其他三个组件中的任何一个 对于初学者来说 这是服务 import Injectable from a
  • Node.js 捕获生成后抛出的 ENOMEM 错误

    我的 Node js 脚本因使用时抛出 ENOMEM 内存不足 errnoException 而崩溃spawn http nodejs org api child process html 错误 child process js 935 t