在node.js中使用参数生成进程

时间:2012-10-08 09:12:22

标签: node.js process spawn

我需要从node.js生成子进程,同时使用ulimit来阻止它使用大量内存。

在文档之后,让基本的生成工作变得困难:child = spawn("coffee", ["app.coffee"])

然而,做我在下面做的只是让产生死亡。

child = spawn("ulimit", ["-m 65536;", "coffee app.coffee"])

如果我要运行ulimit -m 65536; coffee app.coffee - 它就像预期的那样工作。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:19)

这是两个不同的命令。如果您正在使用spawn,请不要与他们联系。使用单独的子进程。

 child1 = spawn('ulimit', ['-m', '65536']);
 child2 = spawn('coffee', ['app.coffee']);

如果您对输出流不感兴趣(如果您只想缓冲输出),可以使用exec

var exec = require('child_process').exec,
child;

child = exec('ulimit -m 65536; coffee app.coffee',
  function (error, stdout, stderr) {
    console.log('stdout: ' + stdout);
  }
});