Форкинг в NodeJS

Я немного запутался в том, как создавать демонов в NodeJS

Я создал демонов в C перед этим вызовом fork () , которые продолжают выполнение с того места, где вызов был сделан в дочернем процессе, что позволило родителю завершить работу. Я не могу легко добиться того же эффекта, используя process.fork () и process.kill () .

Следующий код не выполняет то, что я ожидал, и ломается:

var current_pid, cp = require('child_process');
current_pid = process.pid;
cp.fork('');
process.kill(current_pid);

Выдается следующая ошибка, и я не могу понять, почему и что происходит:

node.js:202
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: read EBADF
    at errnoException (net.js:589:11)
    at Pipe.onread (net.js:335:20)

Вызов проблемы, похоже, связан с процессом . kill () . После его удаления оба процесса продолжат успешно работать.

Мне известно о daemon.node , но он был создан в то время, когда child_process.fork () не существовал (версия v0.1.33 была доступна, когда daemon.node был написан). Теперь есть собственный способ разветвления, так что в этом больше нет необходимости. (К тому же, похоже, он тоже был заброшен.)

9
задан Matty 27 October 2011 в 00:20
поделиться