如何判断 Node.js 子进程是否来自 fork()?

问题描述 投票:0回答:1

我有一个小型应用程序,可以通过 fork 或直接由开发人员执行,并且我希望它的配置略有不同,具体取决于它的启动方式。

我知道我总是可以传递参数来表明它是一个分叉,但我只是好奇是否有一种方法可以告诉我是否可以在子进程中知道它是否来自

fork()
。我在
process
环顾四周,但没有发现任何迹象。

javascript node.js process fork
1个回答
29
投票

您可以检查您的应用程序中是否存在

process.send
。当它开始使用
fork()
时它就会存在。

if (process.send === undefined) { 
  console.log('started directly');
} else {
  console.log('started from fork()');
}

就我个人而言,我可能会在父级中设置一个环境变量并在子级中检查该环境变量:

// parent.js
child_process.fork('./child', { env : { FORK : 1 } });

// child.js
if (process.env.FORK) {
  console.log('started from fork()');
}
© www.soinside.com 2019 - 2024. All rights reserved.