Tag: subprocess

多命令shell AS分离subprocessWITH spawn()IN Node.js

供参考: https : //nodejs.org/api/child_process.html#child_process_options_detached 大家好, 所以我需要spawn一个subprocess,由于exec不允许options.detached & child.unref(); ,这意味着它可以与父母分离,允许孩子在自己的父母上运行和完成,反之亦然父母(在我们的特定情况下,父母的过程可以在长期的孩子之前死亡,在这种情况下,更新是完成而不需要像exec那样等待孩子)。 我们有一个由节点(父)应用程序构build的长连接("… ; … ; …")命令,但像spawn("echo stuff >>stderr.log")不起作用,只有spawn('ls', [-l]) ,我显然不能链接命令(因为它在文档中也被引用,并在SO上多次引用。 TLDR; 我们需要使用spawn ,但spawn不能处理链式shell命令。 我现在真的需要在bash中编写我的命令,然后执行它,这是否是唯一的select? 谢谢

将运行时parameter passing给Nodejssubprocess

我想用Nodejssubprocess编译C程序。 C .out文件执行function: var exec= require('child_process').exec; exec("test.exe",function(err,stdout,stdin){ //call back handling code here }); C程序: #include <stdio.h> int main() { char msg[8]; scanf("Please endter %s",&msg) printf("Hello world %s\n", msg); return 0; } 如何将运行时scanfinputparameter passing给subprocess?

在新的terminal中启动带有child_process的Node.js Express服务器

我正在寻找一种方法来启动一个Node.js高速服务器使用分离的child_process,我想stream输出到一个新的terminal窗口。 这可能与Node.js不知何故? 所以我有这个: //server.js var http = require('http'); const PORT=8080; function handleRequest(request, response){ response.end('It Works!! Path Hit: ' + request.url); } http.createServer(handleRequest).listen(PORT, function(){ console.log("Server listening on: http://localhost:%s", PORT); }); 然后我想通过运行这个文件启动该服务器 //start-server.js var cp = require('child_process'); cp.fork('./server.js'); 我想打开一个新的terminal,然后运行start-server.js文件…这可能吗?

Node.JS:execFile ENOENT

我试图执行*.exe文件,但得到: exec error: { Error: spawn ${__dirname}/install.exe ENOENT 码: var execFile = require('child_process').execFile execFile('${__dirname}/install.exe', function(error, stderr) { console.log('stderr: ', __dirname); if (error !== null) { console.log('exec error: ', error); } }); 还试过: '${__dirname}\install.exe' , './install.exe' '${__dirname}\install.exe' './install.exe' , 'D:\install.exe'

在后台使用child_process(node js)运行python脚本

我有一个python脚本test.py在一个树莓派需要在后台运行。 使用CLI,我这样做: python test.py & 但是,如何使用节点js中的child_process执行相同操作。 var spawn = require("child_process").spawn; var process = spawn("python",["/path/to/test.py", "&"]); 我有这个代码,这似乎是行不通的。 请build议可能的方法来实现这一点。

在子文件夹中执行gulp命令

我的项目结构如下: myapp -server.js -test –testcontent —package.json -package.json 我有两个package.json文件,我想在testcontent文件夹内的package.json上运行npm install 。 如果在命令行中,我去myapp/test/testcontent然后运行npm install它会工作,它会从正确的package.json创build一个新的文件夹node_modules 。 怎么可以从内部完成呢? 我尝试了以下,但它使用myapp的package.json而不是testcontent子文件夹中的testcontent : gulp.task('default', function () { var options = { continueOnError: true, // default = false, true means don't emit error event pipeStdout: true, // default = false, true means stdout is written to file.contents customTemplatingThing: "test" // content passed to […]

节点的max_old_space_size是否会影响subprocess的内存限制?

我正在使用节点来pipe理服务和长时间运行的java进程之间的通信层。 这个java进程是一个使用ChildProcess.spawn()运行的jar, 我正在设置stdio,close,stderr监听器来监视subprocess的进度并保存输出。 我期望subprocess运行在自己的内存空间,有自己的内存限制(在这是一个独立的进程)。 但是,通过testing,我发现当我增加节点进程的max_old_space_size时,在查看内存问题之前,进程运行时间明显更长。 看起来像通过执行java进程分配的内存是针对父进程的最大分配计数的。 这是这种情况吗?

为什么调用一个child_process命令可以使用exec而不是spawn?

为什么会这样工作: var exec = require("child_process").exec; var command = exec("grunt"); 但是这会引发一个错误: var spawn = require("child_process").spawn; var command = spawn("grunt"); 它抛出的Error: spawn ENOENT是Error: spawn ENOENT 起初我以为这可能与env ,但是exec和spawn.完全一样spawn. 我认为它必须以某种方式与Grunt有关,因为尝试git在两个工程。

与nodejs中的child_process共享数据库连接

我在node.js是新的,我不知道是否有任何方式来共享一个db连接(可以说db-mysql)与一个child_process。 可以* child_process.fork()*做到这一点,如果我通过发送SQL语句返回并获得比结果与父进程通信? 或者,这是否比打开一个新的儿童连接更糟?

分离的subprocess在node.js的脚本出口退出

据我所知,我遵循api文档中的说明。 我使用detached:true, stdio:['ignore','ignore','ignore']的选项产生了这个过程detached:true, stdio:['ignore','ignore','ignore'] ,我在unref上调用unref。 ChildProcess有一个pid,所以我认为它已经成功启动了。 我试图从一个咕task任务中启动一个雪人服务器。 这个代码是在一个asynchronous调用,所以next进展,并最终完成任务。 我使用which来获取cmd ,以及Mac OSX 10.9上的/usr/local/bin雪人脚本的正确path。 端口也被定义为一个空端口。 如果我在命令行上运行相同的命令,它工作得很好。 咕噜声退出后,我打电话给ps aux | grep node ps aux | grep node和ps aux和grep为logging的PID和没有任何运行。 这里是代码: yeti = spawn("" + cmd + " –server –port " + port, [], { detached: true, stdio: ['ignore', 'ignore', 'ignore'] }); yeti.unref(); next("Yeti server is running. pid: " + […]