Я немного запутался в том, как создавать демонов в 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 был написан). Теперь есть собственный способ разветвления, так что в этом больше нет необходимости. (К тому же, похоже, он тоже был заброшен.)