【发布时间】:2015-08-26 02:31:19
【问题描述】:
我有一个可以由 fork 或直接由开发人员执行的小型应用程序,我希望根据它的启动方式对其进行稍微不同的配置。
我知道我总是可以传递参数来表明它是一个 fork,但我只是好奇是否有办法判断我是否可以在子进程中知道它是否来自 fork() .我在process 中环顾四周,但没有发现任何信息。
【问题讨论】:
标签: javascript node.js process fork
我有一个可以由 fork 或直接由开发人员执行的小型应用程序,我希望根据它的启动方式对其进行稍微不同的配置。
我知道我总是可以传递参数来表明它是一个 fork,但我只是好奇是否有办法判断我是否可以在子进程中知道它是否来自 fork() .我在process 中环顾四周,但没有发现任何信息。
【问题讨论】:
标签: javascript node.js process fork
这有点小技巧,但您可以检查您的应用程序中是否存在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()');
}
【讨论】: