0
我正在嘗試使用ExpressJS應用程序使用pm2進程管理器。第一個實例運行並正常工作,但其他人不斷地使用EADDRINUSE崩潰並一次又一次地運行。所以我想知道我做錯了什麼?pm2無法創建expressjs的多個實例 - EADDRINUSE端口在使用中錯誤
我跑PM2與下一個命令:爲PM2
pm2 start process.json
process.json配置文件看起來像:
{
"apps": [
{
"name": "clinical-trials",
"script": "./bin/www",
"instances": 0,
"env": {
"PORT" : 4000,
"NODE_ENV": "development"
},
"env_production": {
"PORT": 4444,
"NODE_ENV": "production"
},
"env_local": {
"PORT" : 4000,
"NODE_ENV": "local"
}
}
]
}
快遞./bin/www
包含下面的代碼:
var port = normalizePort(process.env.PORT || app.locals.config.port);
app.set('port', port);
var server = http.createServer(app);
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
在PM2回購示例文件夾他們有8000個端口上監聽的子進程: https://github.com/Unitech/pm2/blob/master/examples/child.js 和配置文件在運行4個實例: https://github.com/Unitech/pm2/blob/master/examples/apps/all-pm2.json
每個端口只能由單個實例使用。 – alexmac
您是否有意將'process.json'的'instances'字段設置爲0? –
你的意思是:執行'pm2 start process.json'正常啓動,然後執行'pm2 start process.json --env local'得到EADDRINUSE,對嗎? –