我有一个小型应用程序,可以通过 fork 或直接由开发人员执行,并且我希望它的配置略有不同,具体取决于它的启动方式。
我知道我总是可以传递参数来表明它是一个分叉,但我只是好奇是否有一种方法可以告诉我是否可以在子进程中知道它是否来自
fork()
。我在process
环顾四周,但没有发现任何迹象。
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()');
}