Подтвердить что ты не робот

Запустите приложение node, используя node.js?

У меня есть два отдельных приложения node. Я хотел бы, чтобы один из них смог запустить другой в какой-то момент кода. Как я могу это сделать?

4b9b3361

Ответ 1

Используйте child_process.fork(). Он похож на spawn(), но используется для создания целых новых экземпляров V8. Поэтому он специально используется для запуска новых экземпляров Node. Если вы просто выполняете команду, используйте spawn() или exec().

var fork = require('child_process').fork;
var child = fork('./script');

Обратите внимание, что при использовании fork() по умолчанию потоки stdio связаны с родительским. Это означает, что все выходные и ошибки будут показаны в родительском процессе. Если вы не хотите, чтобы потоки, общие с родителем, вы можете определить свойство stdio в параметрах:

var child = fork('./script', [], {
  stdio: 'pipe'
});

Затем вы можете обрабатывать этот процесс отдельно от потоков основного процесса.

child.stdin.on('data', function(data) {
  // output from the child process
});

Также обратите внимание, что процесс не выходит автоматически. Вы должны вызвать process.exit() из порожденного процесса Node, чтобы он мог выйти.

Ответ 2

Вы можете использовать модуль child_process, это позволит выполнять внешние процессы.

var childProcess = require('child_process'),
     ls;

 ls = childProcess.exec('ls -l', function (error, stdout, stderr) {    if (error) {
     console.log(error.stack);
     console.log('Error code: '+error.code);
     console.log('Signal received: '+error.signal);    }    console.log('Child Process STDOUT: '+stdout);    console.log('Child Process STDERR: '+stderr);  });

 ls.on('exit', function (code) {    console.log('Child process exited with exit code '+code);  });

http://docs.nodejitsu.com/articles/child-processes/how-to-spawn-a-child-process