這是從官方文檔一個簡單的例子:爲什麼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