Detectar se um script foi bifurcado em NodeJS

No projeto em que estou trabalhando atualmente, tento lidar com todos os comportamentos estranhos que os futuros usuários podem ter; pode-se tentar executar scripts aleatórios como programas autônomos, quando não estão. Imediatamente, você pensará em module.parent ; infelizmente, isso indica apenas se seu script foi chamado usando require () ou não. E se o único contexto de execução do seu script residir em um fork () , como:

this.worker = childProcess.fork(__dirname + '/shard.starter.js');

Onde shard.starter.js se parece com:

(function ShardStarter() {
// Insert code here.
})();

Bem, para evitar que shard.starter.js seja executado como um autônomo aqui, apenas verifique se process.send existe. Em caso afirmativo, significa que seu script foi bifurcado. Caso contrário, seu script está sendo executado como autônomo.

if (!process.send)
process
.exit(0);
(function ShardStarter() {
// Insert code here.
})();

Por quê? Simplesmente porque process.send é exclusivo para o processo filho (consulte process e child_process na documentação para obter mais detalhes).

Nota: Eu escrevi esta dica porque não há uma resposta precisa aparecendo no Google ao pesquisar os termos do título. Esperando que seja indexado e exibido para futuras pessoas que pesquisarem com esses termos.