2014-10-27 4 views
1

Возможно ли запустить процесс из узла, который не является дочерним процессом из экземпляра узла, а является системным процессом? Если я использую child_process, новые процессы включаются в процесс отцов. Проблема в том, что все другие процессы будут убиты, если отцовский процесс отменен. Я хочу запустить новые процессы, а процесс отца убит.Начать новый процесс как системный процесс

ответ

1

Дать child.unref() попробовать. According to the node.js documentation:

Если установлен отдельный параметр, дочерний процесс станет лидером новой группы процессов. Это позволяет ребенку продолжить работу после выхода родителя.

По умолчанию родитель будет ждать выхода дочернего ребенка. Чтобы предотвратить родительский доступ к ожидаемому дочернему элементу, используйте метод child.unref(), и цикл событий родителя не будет включать дочерний элемент в его счетчик ссылок.

Emphasis mine. Так, зная, что вы можете также передать в true к detached опции в хэш опций при разветвление:

var child = spawn('prg', [], { 
     detached: true, 
     stdio: [ 'ignore', out, err ] 
    }); 
+1

Спасибо! :) Я заметил, что икру немного сложнее в Windows. Это может быть полезно для тех, кто хочет использовать его в Windows. https://www.npmjs.org/package/win-spawn – teawithfruit

+0

Рад помочь :) –

Смежные вопросы