Я немного запутался в том, как создавать демоны в 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)
Проблема вызова выглядит как process.kill()
. После этого оба процесса продолжают успешно выполняться.
Мне известно о daemon.node , но он был создан в то время, когда child_process.fork()
не существовало (v0.1.33 была версией, доступной на момент написания daemon.node). Теперь есть нативный способ форка, поэтому в этом больше нет необходимости. (К тому же, похоже, он тоже заброшен.)