繁体   English   中英

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

[英]How to tell if child Node.js Process was from fork() or not?

我有一个小的应用程序,可以由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()');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM