Syntax Error.

[Sy] Node.jsでアプリを起動しようとしたら「listen EADDRINUSE」とエラーになる場合の対処

2015/07/29

Node.jsでアプリを起動しようとしたら、Error: listen EADDRINUSEというエラーで起動に失敗しました。その原因と対処について。

エラー内容は以下。

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at net.js:1146:9
    at asyncCallback (dns.js:68:16)
    at Object.onanswer [as oncomplete] (dns.js:121:9)

調べてみると、ポートがすでに使われている場合に出るエラーとのこと。

そういえばforever start appでデーモン化してたの忘れてました・・・

$ forever list
info:    Forever processes running
data:        uid  command             script forever pid  id logfile                         uptime
data:    [0] GugN /usr/local/bin/node app.js 3611    3613    /home/vagrant/.forever/GugN.log 0:14:41:57.210

ということで、一旦デーモンでの起動をやめて、普通に起動できました。

$ forever stop app.js
info:    Forever stopped process:
    uid  command             script forever pid  id logfile                         uptime
[0] GugN /usr/local/bin/node app.js 3611    3613    /home/vagrant/.forever/GugN.log 0:14:42:9.52

$ node app.js

他の方法としては、ポートを切り替えて起動してもいけそう。