Erreur de l'application Nodejs: lier EADDRINUSE lors de l'utilisation de pm2 deploy
Demande expresse de déployer avec pm2
base de données mongodb
lors de l'exécution de l'app avec la commande:
NODE_ENV=production pm2 start app.js -i max
aften a Erreur: lier EADDRINUSE, c'est les journaux, quand l'erreur,
[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)
Cela provoque application est lente, Comment résoudre ce problème, merci beaucoup
source d'informationauteur lidashuang
Vous devez vous connecter pour publier un commentaire.
Je ne connais pas le port utilisé par votre application. Cela dépend de votre code. Dans cet exemple, je vais supposer que le port est
3000
.Vous devez vérifier si le port est déjà pris sur votre système. Pour ce faire:
sudo netstat -nltp | grep 3000
sudo lsof -i -P | grep 3000
Si vous avez un résultat, il faut tuer le processus (
kill <pid>
).Vous devriez vérifier si
pm2 list
retourne 0 processus. En outre, lorsque vous faites unpm2 stopAll
le socket n'est pas libérée. N'oubliez pas de faire unpm2 kill
pour être sûr que le démon est tué.OS X
Cmd+Espace -> entrée: Moniteur d'Activité -> trouver l'application et d'y mettre fin.