Questions tagged «spawn»

23
如何在node.js上调试“错误:生成ENOENT”?
当我得到以下错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:1000:11) at Process.ChildProcess._handle.onexit (child_process.js:791:34) 我可以按照什么程序来修复它? 作者注意:许多与此错误有关的问题鼓励我发布此问题以供将来参考。 相关问题: 将生成功能与NODE_ENV = production一起使用 node.js child_process.spawn ENOENT错误-仅在监督下 产生ENOENT node.js错误 /programming/27603713/nodejs-spawn-enoent-error-on-travis-calling-global-npm-package 节点JS-Grunt任务中的child_process spawn('npm install')导致ENOENT错误 运行“ foreman”任务致命错误:生成ENOENT 节点js中未处理的错误事件错误:在errnoException处生成ENOENT(child_process.js:975:11) Node.js SpookyJS:执行hello.js时出错 /programming/26572214/run-grunt-on-a-directory-nodewebkit 使用子进程NodeJS运行exe文件 节点:child_process.spawn即使在路径中也无法在Java上运行(ENOENT) 使用NodeJS生成ENOENT错误(与PYTHON相关) 图像调整大小在node.js(partial.js)中不起作用(未安装的依赖项) npm安装错误ENOENT(构建依赖项问题) 无法在Windows 7上安装node.js-oracle模块(生成依赖项问题) 在Windows上使用Node.js安装Gulp时发生错误(奇怪的情况)

6
什么是未处理的承诺拒绝?
为了学习Angular 2,我正在尝试他们的教程。 我收到这样的错误: (node:4796) UnhandledPromiseRejectionWarning: Unhandled promise rejection (r ejection id: 1): Error: spawn cmd ENOENT [1] (node:4796) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node. js process with a non-zero exit code. 我在SO中经历了不同的问题和答案,但找不到“未处理的承诺拒绝”是什么。 谁能简单地解释一下我的意思,它又是什么Error: spawn cmd ENOENT,什么时候出现,以及为了消除该警告我必须检查的内容?

8
Node.js产生子进程并实时输出终端
我有一个脚本,输出“ hi”,睡眠一秒钟,输出“ hi”,睡眠1秒,依此类推。现在,我认为我可以使用此模型解决此问题。 var spawn = require('child_process').spawn, temp = spawn('PATH TO SCRIPT WITH THE ABOVE BEHAVIOUR'); temp.stdout.pipe(process.stdout); 现在的问题是,需要完成任务才能显示输出。据我了解,这是由于新产生的进程接受了执行控制。显然,node.js不支持线程,那么有什么解决方案吗?我的想法是可能运行两个实例,第一个实例用于创建任务的特定目的,并考虑到可以实现的目的,将其通过管道将输出传递给第二个实例的进程。

6
Node.js捕获生成后引发的ENOMEM错误
使用spawn时,由于抛出ENOMEM(内存不足)errnoException,我的Node.js脚本崩溃了。 错误: 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) 我已经在为errorandexit事件使用侦听器,但是在发生此错误的情况下不会触发它们。 我的代码: zbarimg = process.spawn('zbarimg', [photo, '-q']); zbarimg.on('error', function(err) { ... }); zbarimg.on('close', function(code) { ... }); 完整的源代码可用。 我有什么办法可以防止脚本崩溃?如何捕获抛出的ENOMEM错误? 谢谢!

3
参数传递策略-环境变量与命令行
我们开发人员编写的大多数应用程序都需要在启动时进行外部参数设置。我们传递文件路径,管道名称,TCP / IP地址等。到目前为止,我一直在使用命令行将其传递给正在启动的应用程序。我必须解析命令行,main并将参数定向到需要它们的位置,这当然是一个很好的设计,但是对于大量参数来说很难维护。最近,我决定使用环境变量机制。它们是全局的,并且可以从任何地方访问,从体系结构的角度来看,这虽然不太优雅,但是限制了代码量。 这是我对这两种策略的第一(也许很浅)的印象,但是我想听听更有经验的开发人员的意见-使用环境变量和命令行参数将参数传递给流程有什么起伏?我想考虑以下事项: 设计质量(灵活性/可维护性), 内存限制 解决方案的可移植性。 备注: 广告。1.这是我感兴趣的主要方面。 广告。2.这有点实用。据我所知,这是目前在Windows上一定的局限性巨大(超过32kB的两个命令行和环境块)。我想这不是问题,因为您只需要使用文件来传递大量参数即可。 广告。3.我对Unix几乎一无所知,所以我不确定这两种策略是否与Windows一样可用。如果需要,请详细说明。

1
开始后分离一个生成子进程
我以这种方式启动生成子进程: let process = spawn(apiPath, { detached: true }) process.unref() process.stdout.on('data', data => { /* do something */ }) 当我开始该过程时,我需要使其保持连接状态,因为我想读取其输出。但是在关闭我的Node进程(父进程)之前,我想分离所有未完成的子进程以使其在后台运行,但是正如文档所述: 使用分离选项启动长时间运行的进程时,除非父进程没有提供未连接到父进程的stdio配置,否则该进程将在父进程退出后不会在后台继续运行。 但是,使用该选项,stdio: 'ignore'我无法阅读,stdout这是一个问题。 我尝试在关闭父进程之前手动关闭管道,但未成功: // Trigger just before the main process end process.stdin.end() process.stderr.unpipe() process.stdout.unpipe()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.