Articles of 产卵

未捕获错误:产生。\ node.exe ENOENT

我有一个nodejs应用程序正在通过电子运行 https://github.com/frankhale/electron-with-express 在使用npm run dist:win32将应用程序打包为可执行文件后,我在控制台中遇到了以下问题: events.js:160 Uncaught Error: spawn .\node.exe ENOENT 以下是我的devDependencies看起来像 "devDependencies": { "electron-builder": "^5.26.0", "electron-prebuilt": "^1.3.3", "electron-rebuild": "^1.2.0" } 当我运行应用程序使用npm启动它工作正常,并没有运行错误。 它的应用程序作为可执行文件运行时,我看到控制台上的错误。

在Node.js中运行带有“spawn”的bash脚本似乎暂停执行一半

下面是我在做什么的要点: https : //gist.github.com/MattCollins84/75f9ebd422ed6d1d5c91 作为一些进程的一部分,我生成了一个bash脚本,里面有大量的curl命令(大约20k个命令)。 我想通过节点运行这个脚本。 我正在使用spawn来做到这一点,它工作正常。 除了70多个命令之后,它就停止了。 由spawn创build的readstream停止输出任何数据。 没有错误,或者任何我能看到的东西。 如果我用“ps x | grep curl”来查看发生的事情,我可以看到进程id刚开始改变,但是似乎在某个时刻停止了,从此再也不会启动了。 这个过程只是挂起。 手动杀死这个过程不会让下一个开始。 此外,与我的bash脚本有关的过程仍然存在,再次,杀死没有任何区别。 观察和我排除的事情: 使用最less的资源 在terminal上运行生成的bash脚本正常工作 似乎并不重要,我curl的URL(即它不是我的应用程序) 我觉得我有一些愚蠢的东西,但是我不知道该怎么去Google弄明白! 我只是希望运行这个文件,就好像我在terminal上一样,但是Node出现了一些限制,以防止它失控。 或者其他的东西。 有任何想法吗?! 谢谢

Node.js:杀死ChildProcess#spawn的subprocess

考虑下面的代码: import {spawn, exec} from 'child_process'; var child = spawn('su', [process.env.USER, '-c', 'while (true); do sleep 0.3; echo "tick"; done'], {stdio: ['ignore', 'pipe', 'pipe']} ); child.stdout.pipe(process.stdout); child.stderr.pipe(process.stderr); setTimeout(() => { child.kill(); }, 1000); 在这里,我试图运行特定的脚本,运行其他subprocess(在这个例子中su会产生一个bash进程),并closures它。 但是,我不能让它工作如何,我期望。 调用child.kill()杀死su父进程而不是其subprocess。 可以做些什么来实现它 – 调用exec(`pkill -TERM -P ${child.pid}`)而不是child.kill() 。 据我所知,这将杀死与父母child.pid整个进动树。 然而,将两种方法结合起来却有一些奇怪之处: setTimeout(() => { child.kill(); exec(`pkill -TERM -P ${child.pid}`); }, 1000);` […]

杀死一个产生的电子实例

我正在使用Atom电子为我的一个项目。 在我的代码的某个时候,我正在使用 var child = child_process.spawn(process.argv[0], [_path.app], {cwd: _path.resources, detached: true, stdio: ['pipe', 'pipe', 'pipe', 'ipc']}); 开始另一个应该做的电子实例..好吧,东西。 现在,子电子应用程序在某个时候可能会变得没有反应,我想杀了它。 但是,如果我只是跟着去 child.kill(); 我只是杀了Electron应用程序的几个进程之一。 所以我想知道:有没有更好的方法来做到这一点? 我想得到的是杀死孩子。 从存在擦拭它。 在没有征得其许可的情况下将其放到被遗忘的地方。 有没有办法做到这一点? 我的另外一个select就是将这个消息以please-die的forms发送给我,但是由于孩子可能行为不当,我不确定这个解决scheme是否有效,孩子会select什么。

如何从node.js中的pcap获取数据

我想在node.js中获取pcap的数据,如帧号,帧时间,ip等。 但是,我找不到任何我想要的模块。 所以,我试图使用tshark。 但结果值被削减。 那么,我如何得到完美的结果呢? 以下是我试过的一些细节。 var spawn = require('child_process').spawn; var fs = require('fs'); var args = [ '-Tfields', '-e', 'frame.number', '-e', 'frame.time', '-e', 'ip.src', '-e', 'ip.dst', '-e', 'ip.proto', '-e', 'tcp.srcport', '-e', 'tcp.dstport', '-e', 'udp.srcport', '-e', 'udp.srcport', '-e', 'udp.dstport', '-e', 'ip.len', '-E', 'header=y', '-r', 'smallFlows.pcap' ]; var cmd = spawn('tshark', args, { cwd: 'C:\\Program Files\\Wireshark\\' […]

当输出打印到rubystdout时,如何使用callback

我正在编写观看服务器状态的脚本。 我可以写在JavaScript代码,但我必须写在ruby。 在JavaScript中,可以使用像这样的node.js来完成。 var iostat = require('child_process').spawn("iostat", ["-w 1"]); iostat.stdout.on('data', function (data) { console.log(data); }); 此代码执行iostat命令并输出到控制台每秒。 我如何在Ruby中实现同样的事情? 换句话说,我希望在使用ruby打印标准输出时使用callback。

守护程序不会在browser.end()后终止

我启动启动我的本地服务器的subprocess后运行Nightwatch。 Nightwatch运行testing,它们成功完成,浏览器窗口全部closures,但是在打印“确定”10个总断言通过之后, nightwatch进程继续运行。 我认为这可能与我如何看nightwatch过程中的事件有关,但据我所知,我正在观看所有可能表明守夜人正在退出的事件。 runner.js shutdown()方法永远不会被调用。 testing结束后,如何让Nightwatch终止? 更新 如果我删除sign-in.js中的最后一个testing,则Nightwatch按预期退出。 runner.js import spawn from 'cross-spawn' // 1. start the dev server using production config process.env.NODE_ENV = 'testing' let servers function shutdown (result) { console.log('HERE', result) try { // Passing a negative PID to kill will terminate all child processes, not just the parent if (servers) process.kill(-servers.pid) […]

节点产卵进程检查timout

我已经产生了有时需要很长时间运行的过程,我的问题是有一种方法来限制这个过程时间? 例如3分钟后杀死这个过程?

Node.js – 产卵gzip过程

我想用Node.js来gzip一些数据… 具体来说,我有'BUF'的数据,我想写一个gzipforms的这个'stream'。 这是我的代码: c1.on('data',function(buf){ var gzip = spawn('gzip', ['-' + (compressionRate-0),'-c', '-']); gzip.stdin.write(buf); gzip.stdout.on('data',function(data){ console.log(data); stream.write(data,'binary'); }); }); 麻烦的是,这根本行不通! 我不确定产卵过程和pipe道数据的确切语法。 任何帮助不胜感激。 提前谢谢了, 编辑:这里是我从中得到的想法的原始工作代码。 该项目位于: https : //github.com/indutny/node.gzip 任何人都可以搞清楚如何在node.js产生这个产卵因为我完全卡住了! var spawn = require('child_process').spawn, Buffer = require('buffer').Buffer; module.exports = function (data) { var rate = 8, enc = 'utf8', isBuffer = Buffer.isBuffer(data), args = Array.prototype.slice.call(arguments, 1), callback; […]

在node.js中产生的进程立即退出

我正在尝试在node.js中产生一个avconv进程。 它应该接收stdin数据并将转换后的数据输出到stdout 当命令在shell中工作时,它会立即在node.js中closures,我不知道为什么: avconv -v quiet -i pipe:0 -vn -f s16le -acodec pcm_s16le pipe:1 这只是工作,并在节点: var a = spawn('avconv', ['-v quiet -i pipe:0 -vn -f s16le -acodec pcm_s16le pipe:1']); a.on('exit', function(code) { pr(code, true); }) 我立即得到一个'1'退出代码。 谁能告诉我这里有什么问题?