Tag: subprocess

node-webkit http.Server和页面更改

我使用node-webkit编写应用程序。 我想使用HTTP进行计算机之间的networking通信,运行我的应用程序。 如果服务器是从页面启动的,可以更改当前页面,而无需重新启动服务器 我想到了subprocess,但我想用我的应用程序closures服务器。 我不想使用特殊的networking请求到服务器来closures它。 我可以更改当前页面而无需重启服务器 我可以在页面更改时保存subprocess对象吗? 你知道其他方式来做到这一点? PS对不起,我的英语。

pipe理处理以提取Node.jssubprocess中的tar缓冲区

我想通过Node.js来做到这一点: git archive remote=git@example.com:repo.git HEAD | tar -x – -C /path/to/extracted/ 所以,我写了这样的代码: git = spawn 'git', ['archive', "–remote=git@example.com:repo.git", 'HEAD'] tar = spawn 'tar', ['-x', '-', '-C /path/to/extracted'] git.stderr.on 'data', (data) -> console.log "git error: #{data}" git.stdout.on 'data', (data) -> tar.stdin.write data tar.stderr.on 'data', (data) -> console.log "tar error: #{data}" git.on 'exit', (code) -> console.log "git […]

Node.js在spawing之后分离一个产生的小孩

我正在使用一个detached child_process的stderrstreamredirect到一个文件 fd = fs.openSync('./err.log', 'a'); 并将这个fd作为stderr传入spawn 。 我正在寻找一种方法来截取写入文件的数据。 这意味着,当那个subprocess写什么的时候,我想在写入这个文件之前先处理它。 我试着做一个可写的stream,并给它,而不是文件描述符产卵。 但是这并没有帮助。 任何人都可以build议我怎么能做到这一点? 另外,我可以正常产生一个child_process( detached = false ),并监听child.stdout data事件,当我准备好时,我可以分离孩子。 所以基本上,我想要一些来自child_process初始数据,然后让它作为后台进程运行并终止父进程。

我可以在subprocess中定义快速路由吗?

所以我运行了一堆写在节点上的聊天机器人,没什么太刺激的。 不过,我最近决定给他们自己的小网页以graphics方式显示信息。 要做到这一点,我想我只是运行快递。 然而,我用一个包装文件来运行我的机器人,它将每个chatbot作为一个subprocess启动。 这使得使用expression有点棘手。 目前,我在wrapper.js文件中启动Express服务器,如下所示: var express = require("express"); var web = express(); web.listen(3001); 然后在subprocess中,我这样做: var express = require("express"); var web = express(); web.get("/urlforbot",function (req,res) { res.send("Working!"); }); 但是,当我导航到:3001/urlforbot ,我得到Cannot GET /urlforbot 。 任何想法我做错了,如何解决这个问题? 编辑 :这是我完整的包装文件: http : //snippi.com/s/3vn56m2 编辑2 :这是我现在正在做的。 我将每个机器人托pipe在自己的端口上,并将这些信息存储在configuration中。 这是我正在使用的代码,它似乎工作: web.get("/"+cfg.route, function (req,res) { // forward the data res.redirect('http://url.com:'+cfg.port+"/"+cfg.route); });

Nodejs child_process.exec:禁用在控制台上打印标准输出

我正在通过nodejs child_process.exec执行映像magick标识命令。 并使用从我的脚本中的标准输出返回的string。 一切工作正常,但调用在控制台打印标准输出,如果服务器没有重新启动,控制台不清除一段时间,控制台变得混乱的标准输出消息。 相关编码: var exec = require('child_process').exec; exec('identify -verbose '+originalFilePath,function(err,stdout,stderr){ var strOut = stdout; // Do something with stdout }); 我只想禁用在控制台上打印返回的结果。

在node.js中pipe理独特subprocess的最佳方法

我即将开始编码聊天机器人。 但是,我计划运行多个,使用包装来沟通和重新启动它们。 我过去用child_process.fork()完成了这个工作,但是效率非常低。 我也研究过spawn和cluster ,但是他们似乎都专注于运行同样的事情,而不是独特的机器人。 至于插件,我已经看过fleet , forkfriend和workerfarm ,但是没有一个能够满足我的需求。 有什么插件或方法我没有看到帮助我做到这一点? 或者我只是想再次拥有它?

作为系统进程启动新进程

是否有可能从节点开始一个进程,这不是从节点实例的subprocess,而是一个系统进程? 如果我使用child_process,则父进程中将包含新进程。 问题是,如果父进程被取消,所有其他进程将被杀死。 我想运行新的进程而不是父进程被终止。

当在node.js中的subprocess中使用vim时,stdio /pipe道问题

我正在使用node.js编写一个命令行界面来生成unit testing文件。 我一直在使用查询器获取用户input,但是有一个字段,用户很可能希望复制粘贴和/或编辑JSON数据的大型多行块。 因此,我的目标是:在CLI中打开vim @某个点 – >允许input – >closuresvim – >写出tmp文件 – >处理结果。 问题是vim的input也会转到父标准input,当返回键被input时,程序继续在vim(混乱)之上。 我很确定stdio / in / out / err没有正确设置,但我似乎无法find确切的解决scheme。 我操纵stream的每一次迭代似乎更接近,但是我知道有一个小的缺失的连接。 我已经尝试了很多东西: var vim = child_process.spawn('vim', [path], {stdin: 'pipe', stdout: 'pipe', stderr: 'pipe'}); var vim = child_process.spawn('vim', [path], {stdio: 'inherit'}); //{stdio: ['pipe','pipe','pipe']} 最后,我从这个例子中跟踪了很多stdio操作, 我如何从node.js打开一个terminal应用程序? ,但仍然有一些小的缺失的链接,我需要帮助 笔记: 我99%确定我的asynchronous承诺是有序的。 它不一定是vim,因为我正在首先检查编辑器的ENV 我把它比作git commit,在编辑器popup并允许input之前closures 在一个小的testing程序中,我可以得到完美的function,但是当试图通过另一个过程来做到这一点时,它不会很好 tl; dr:我想忽略父进程而input只去vim(child_process),但我不能让他们分开,正因为如此,程序去haywire 如果有什么我可以澄清,请让我知道。 […]

如何从nodejs中的守护进程产生gpgsubprocess?

如果我正常运行应用程序,我可以产生一个gpgsubprocess并正常解密一个文件。 /app.js var spawn = require('child_process').spawn; function decrypt() { var gpg = spawn('gpg', ['–no-use-agent', '–passphrase', 'My Passphrase', './test.pdf.asc']); gpg.on('close', function (code) { console.log(code); // code == 0 }); } decrypt(); 按照常规stream程运行app.js并解密文件 node app.js 然而,当我尝试运行app.js守护进程使用pm2,暴发户等…我得到了错误代码(2),无法解密文件运行app.js aa守护进程 pm2 start app.js

NodeJS – 如何将MySQL连接从主进程传递给subprocess?

我尝试了以下服务器+工人代码,但它根本无法工作。 server.js: var net = require('net'); var mysql = require('mysql'); var cp = require('child_process'); var serverPort=20460; var connection = mysql.createConnection({ database : 'test', host : 'localhost', user : 'root', password : '' }); var server = net.createServer(function (socket){ socket.on('data',function(data){ console.log("Server received: ",data); var child = cp.fork('./worker'); child.send({'connection': connection}); }); }); connection.connect(function(err, two){ if (!err) { […]