Процесс нереста с аргументами в node.js

Мне нужно создать дочерний процесс из node.js, используя ulimit, чтобы он не использовался для большого объема памяти.

Следуя документам, нетрудно было заставить основной нерест работать: child = spawn("coffee", ["app.coffee"]).

Однако, делая то, что я делаю ниже, просто заставляет икру умирать тихо.

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

Если бы я запускал ulimit -m 65536; coffee app.coffee - он работает как намеренный.

Что я здесь делаю неправильно?

Ответ 1

Это две разные команды. Не используйте их, если вы используете 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);
  }
});