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