From 2d0877f80ea50cefa12f06335e7821d35881c44f Mon Sep 17 00:00:00 2001 From: Julian Lam Date: Thu, 4 Sep 2014 20:07:55 -0400 Subject: [PATCH] better handling of port in use errors with cluster --- src/webserver.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/webserver.js b/src/webserver.js index bf3e1ff9f9..661c6da6b9 100644 --- a/src/webserver.js +++ b/src/webserver.js @@ -108,7 +108,11 @@ if(nconf.get('ssl')) { server.on("error", function(err){ if (err.code === 'EADDRINUSE') { winston.error('NodeBB address in use, exiting...'); - process.exit(1); + if (cluster.isWorker) { + cluster.worker.kill(); + } else { + process.exit(0); + } } else { throw err; } @@ -133,7 +137,7 @@ if(nconf.get('ssl')) { var bind_address = ((nconf.get('bind_address') === "0.0.0.0" || !nconf.get('bind_address')) ? '0.0.0.0' : nconf.get('bind_address')) + ':' + port; winston.info('NodeBB attempting to listen on: ' + bind_address); - server.listen(port, nconf.get('bind_address'), function(){ + server.listen(port, nconf.get('bind_address'), function() { winston.info('NodeBB is now listening on: ' + bind_address); if (process.send) { process.send({