Tag: subprocess

如何在NodeJS中访问subprocess的套接字?

我目前遇到一个很奇怪的问题。 我正尝试使用NodeJSsubprocess启动VLC,然后使用套接字访问它的远程控制(RC)接口。 连接到此sockets时发生此问题。 我得到一个错误,连接被拒绝。 端口是开放的,应用程序是从防火墙允许的。 棘手的部分是,当我用这个接口手动打开VLC,只尝试在套接字上连接,它的工作原理。 我假设在产生的过程中的东西使事情不同,导致错误莫名其妙。 这是我试图运行的代码: var spawn = require('child_process').spawn; var file_dir = "V:\\TEST\\"; var files = ["Ika.mkv", "Nami.mkv", "Azu.mkv"]; var player = spawn("C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe", ['–intf="rc"', '–rc-host="localhost:3000"', '–fullscreen', file_dir + files[0]]); var net = require('net'); var client = net.createConnection(3000, "localhost"); client.on('connect', function() { console.log('connected to VLC on port 3000'); client.write("add " + […]

Nodejs总是不能完全捕获subprocess的stdout数据,除非subprocessfllush(stdout)

我使用nodejs来捕获它的subprocess的stdout数据,但总是捕获subprocess的stdout数据的前一部分。 当我添加fllush(stdout)时 ,它工作正常。 但是我不知道为什么,也不想添加flush(stdout)。 这是我的代码: var tail_child = spawn(exefile, [arg1, arg2, arg3]); tail_child.stdin.write('msg\n'); tail_child.stdout.on('data', function(data) { console.log(data); }); child_process.c printf("data\n"); 需要你的帮助! 非常感谢你!

从NodeJS child_process.spawn中检索bash错误

当我从bash执行(编造和荒谬的)命令banana ,我得到以下错误: bash: banana: command not found 但是如果我在Node.js的child_process.spawn中执行banana ,我得到的错误是: net.js:624 throw new TypeError('invalid data'); ^ TypeError: invalid data at WriteStream.Socket.write (net.js:624:11) at ChildProcess.<anonymous> at ChildProcess.emit (events.js:107:17) at Process.ChildProcess._handle.onexit (child_process.js:1065:12) at child_process.js:1137:20 at process._tickCallback (node.js:355:11) at Function.Module.runMain (module.js:503:11) at startup (node.js:129:16) at node.js:814:3 有什么办法从Node.JS得到原始的bash错误的文本?

nodejs创build后台任务还是subprocess来执行callback函数

NodeJS是否创build后台任务或subprocess来执行callback函数? NodeJS如何执行下面的查询? MyModel.find({}, function (err, docs) { //Do some thing });

切换到subprocess标准输出并返回

我有一个启动多个subprocess的NodeJS程序。 我想要做的是循环每一个,显示标准输出,无论我select哪一个。 我已经尝试用'pipe道'启动subprocess,然后执行 process.stdout.pipe(childproc.stdout); 但是,挂起,然后崩溃。 我可以用'inherit'来显示,但是我不能在孩子之间切换。 然后我需要能够不显示任何东西,并显示程序自己的信息。 任何想法如何redirect我的标准输出之间的一系列subprocess?

将代码从subprocessexec更改为产生

我有节点的应用程序,我使用child_process。 工作好的exec api,问题是有maxBuffer我们有麻烦的事情,因此我想改变它与产卵工作 以前的代码是(这段代码工作正常,我只需要通过cmd和选项,它正在做这个工作…) var child = child_process.exec(cmd,options, function (error) { …. }); 现在我改变它产卵,它不工作 var child = child_process.spawn(cmd, options); child.stdout.on('data', function (data) { console.log('stdout: ' + data); }); child.stderr.on('data', function (data) { console.log('stderr: ' + data); }); 这里我得到错误 Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34) stderr: execvp(): No such file or directory 任何想法我在这里错过了什么?

不能通过节点child_process.spawn调用`git submodule add`

我所要做的就是执行cmd git submodule -q add -f –depth 1 https://github.com/user/repo node_modules/repo通过节点,但我似乎无法得到它的工作。 var cmd = [ 'git', [ 'submodule', '–quiet', 'add', '–force', '–depth', '1', (self.url.replace('git+', '')), self.installTo ] ] var git = spawn.apply(spawn, cmd) git.stderr.on('data', log.error) git.on('close', function (code, signal) { // irrelevant because it errors out… } 我在terminal中出现以下错误: ERR! usage: git submodule [–quiet] add [-b <branch>] […]

pdb / ipdb如何处理debuggingstdin / stdout

我有一个运行python程序的nodejs脚本。 我希望能够在debugging会话开始时与pdb进行交互。 我正在使用这个来开始我的过程: var cp = require('child_process') var app = cp.spawn('python_app', ['param']) app.stdout.pipe(process.stdout) app.stderr.pipe(process.stderr) process.stdin.pipe(app.stdin) 不幸的是,当debugging会话开始时,我没有看到任何东西,过程简单地挂起。 我猜测pdb / ipdb正在工作,但似乎没有任何事情发送到pdb。 可以从nodejs与pdb进行交互吗?

Nodejs – spawn.stdout和process.stdout的区别

玩child_process,我想pipe生成的CP输出到自定义stream。 我不明白为什么在第一种情况下pipe道不工作,并在第二个。 预置 const cp = require('child_process'); const process = require('process'); const stream = require('stream'); var writable = new stream.Writable(); writable._write = function (data) { console.log(data.toString()); }; 不起作用 var spawnedProcess = cp.spawn('ls', [], { stdio: [process.stdin, process.stdout, process.stderr] }); process.stdout.pipe(writable); 输出login到terminal,但不pipe它。 工作 var spawnedProcess = cp.spawn('ls', [], {}); spawnedProcess.stdout.pipe(writable); pipe道输出为writable 。

复杂的child_process不能与Promise蓝鸟一起工作

我不想使用node.js中的child_process执行shell命令https://nodejs.org/api/child_process.html ,我在做一个使用React JS的电子程序。 我想用bluebird来做一个Promise,我的函数可以工作,但是对于像'ls'这样的小命令,但是如果我想在一个文件夹中执行一个简单的hello world程序,我想要这样做: cd localbuild/login/ && java Main 。 这是在我的terminal上工作。 当我试图在我的function做到这一点我有这个错误: promise rejected: Error: spawn cd localbuild/login/ ENOENT closing code: -2 。 这是我的function: _compile(command){ var Promise = require('bluebird'); var exec = require('child_process').execFile; var pathFile = "cd localbuild/login/"; function promiseFromChildProcess(child) { return new Promise(function (resolve, reject) { child.addListener("error", reject); child.addListener("exit", resolve); }); } var […]