Как предотвратить уничтожение процессов дочерних узлов процессом родительского узла? - PullRequest
4 голосов
/ 16 февраля 2012

Я использую child_process.spawn / child_process.fork для запуска ряда дочерних процессов из приложения node.js. При остановке родительского процесса с помощью Ctrl-C дочерние процессы также останавливаются. Есть ли элегантный способ поддерживать работу дочерних процессов?

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

Вы можете попробовать поймать SIGINT у своего ребенка:

// child.js
process.on("SIGINT", function() { console.log("sigint caught") });

// parent.js
var fork = require("child_process").fork,
    child = fork(__dirname + "/child.js");

Запустите parent.js и нажмите ^C. Ваш child.js должен продолжать работать в фоновом режиме. Я не знаю, каковы будут последствия этого при жизни child.js.

Вот интересное, хотя и довольно старое обсуждение темы в списке рассылки node.js .

0 голосов
/ 06 апреля 2013

Вы можете позвонить childprocess.disconnect(); в родительском или process.disconnect(); в дочернем.

...