这是从官方文档一个简单的例子:为什么node.js运行两个进程?
$ node test-node.js
var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
console.log(numCPUs);
for (var i = 0; i < numCPUs-1; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.process.pid + ' died');
});
} else {
// Workers can share any TCP connection
// In this case its a HTTP server
http.createServer(function(req, res) {
res.writeHead(200);
res.end("hello world\n");
}).listen(8000);
}
这是我在HTOP看到:
有2个主流程和两个叉过程。
为什么? 我以为我应该只有2个进程!
UPDATE:
在这里,我在虚拟机上运行的CentOS: http://i.stack.imgur.com/GQiiN.png
也许我不明白?
看起来你运行该程序的两倍。 – 2013-04-08 17:45:49
我是怎么做到的? – zoh 2013-04-08 18:01:29
你好吗?从命令行?如何在测试之间杀死它?这将需要更多的信息来弄清楚发生了什么。 – 2013-04-08 18:39:00