Метод cluster.fork
(через child_process.fork
, который он вызывает ) не выполняет системный вызов fork
, как в UNIX. Он создает новый дочерний процесс, как вилка, но этот новый дочерний процесс начинается с совершенно нового экземпляра интерпретатора, и этот новый интерпретатор начинает выполнять сценарий с самого начала. Вы видите console.log
, выполненный один раз в родительском процессе и один раз в дочернем процессе.
В документах по child_process.fork
кратко упоминается это ...
В отличие отfork (2) системный вызов POSIX, child_process.fork () не клонирует текущий процесс.
... но я бы все равно сказал, что имя сбивает с толку.
Для работывокруг этого вы, вероятно, захотите переместить логику инициализации (в этом примере вызов console.log
) в блок if (cluster.isMaster)
.