react nodejs node error eaddrinuse already address node.js mongodb deployment express cluster-computing

node.js - already - Error de la aplicación Nodejs: vincule EADDRINUSE cuando utilice el despliegue pm2



error: listen eaddrinuse:::8081 react native (2)

Despliegue pm2 aplicaciones con pm2

la base de datos es mongodb

cuando se ejecuta la aplicación con el comando:

NODE_ENV=production pm2 start app.js -i max

A menudo tiene error: vincular EADDRINUSE, esto es registros, cuando error,

[app err (l0)] js:1073:26 [app err (l1)] at Object.30:1 (cluster.js:587:5) [app err (l2)] at handleResponse (cluster.js:171:41) [app err (l3)] at respond (cluster.js:192:5) [app err (l4)] at handleMessage (cluster.js:202:5) [app err (l5)] at process.EventEmitter.emit (events.js:117:20) [app err (l6)] at handleMessage (child_process.js:318:10) [app err (l7)] at child_process.js:392:7 [app err (l8)] at process.handleConversion.net.Native.got (child_process.js:91:7)Error: bind EADDRINUSE [app err (l9)] at errnoException (net.js:901:11) [app err (l10)] at net.js:1073:26 [app err (l11)] at Object.31:1 (cluster.js:587:5) [app err (l12)] at handleResponse (cluster.js:171:41) [app err (l13)] at respond (cluster.js:192:5) [app err (l14)] at handleMessage (cluster.js:202:5) [app err (l15)] at process.EventEmitter.emit (events.js:117:20) [app err (l16)] at handleMessage (child_process.js:318:10) [app err (l17)] at child_process.js:392:7 [app err (l18)] at process.handleConversion.net.Native.got (child_process.js:91:7)

Esto hace que la aplicación sea lenta. Cómo resolver este problema, muchas gracias.


No sé el puerto utilizado por su aplicación. Depende de tu código. En este ejemplo, asumiré que el puerto es 3000 .

Debe verificar si el puerto ya está ocupado en su sistema. Para hacer eso:

  • En linux: sudo netstat -nltp | grep 3000 sudo netstat -nltp | grep 3000
  • En OSX: sudo lsof -i -P | grep 3000 sudo lsof -i -P | grep 3000

Si tiene un resultado, debe finalizar el proceso ( kill <pid> ).

Debe comprobar si la pm2 list devuelve 0 procesos. Además, cuando haces un pm2 stopAll , el socket no se libera. No te olvides de pm2 kill a pm2 kill para asegurarte de que el demonio está muerto.

$ pm2 kill Daemon killed


OS X

Cmd + Espacio -> ingrese: Monitor de actividad -> encuentre su aplicación y finalícela.