web-dev-qa-db-ja.com

node.jsの引数を使用した生成プロセス

ulimitを使用してメモリを多く使用しないようにしながら、_node.js_から子プロセスを生成する必要があります。

ドキュメントに従って、基本的なスポーンを動作させるのは難しくありませんでした:child = spawn("coffee", ["app.coffee"])

ただし、以下で私が行うことを行うと、スポーンがサイレントで死ぬだけです。

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

_ulimit -m 65536; coffee app.coffee_を実行すると、意図したとおりに機能します。

ここで何が悪いのですか?

18
Industrial

これらは2つの異なるコマンドです。 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);
  }
});
23
vinayr