LoginSignup
43
42

More than 5 years have passed since last update.

Node.jsの開発で `warn - error raised: Error: listen EADDRINUSE` って怒られるときの対応

Last updated at Posted at 2014-05-23

最近PCの調子が悪くて突如落ちる時があります。
Node.jsで開発をしているときにこんな感じで予期せぬ終了があると、Node.jsを次に起動するときにwarn - error raised: Error: listen EADDRINUSEって怒られるときがあります。

$ node app.js
 info  - socket.io started
 Express server listening on port 3002
・
・
・
(←プロセスの途中でPCが落ちる等で異常終了)

$ node app.js
   info  - socket.io started
   warn  - error raised: Error: listen EADDRINUSE

(←次に実行するとerrorに)

warn - error raised: Error: listen EADDRINUSEはそのポートが既に使われてる場合に発生するみたいです。つまり異常終了時のNode.jsプロセスが生きてるんですね。

解決策1 しばらく待ってから実行

そのうちNode.jsのプロセスが切れてくれるのを待ちます。

解決策2 起動ポートを変更する

app.jsのポートを変更して再起動すれば解決します。

解決策3(本命) プロセスを切って再実行

複数人開発等でポートの変更を出来ない場合もあります。
例えば、http://localhost:3000 というアクセスの仕方をフロントエンジニアに教えておいて,そこでデバッグしてもらうときなどそういうケースは多い気がします。

そんなときは、psコマンド(とgrep)でプロセス名を調べて、killでプロセスを終わらせて、Node.jsを再実行すれば解決します。

$ ps aux | grep node
user 18200  0.4 13.2 990828 80392 pts/0    Sl+  08:43   0:03 node app.js
user 18455  0.0  0.1 114492   892 pts/1    S+   08:55   0:00 grep node
$ kill 18200

再び実行すれば問題無く起動します。

$ node app.js
   info  - socket.io started
  Express server listening on port 3002

このエラーのときも同じ対応でいけるかも

追記: 2014/6/4

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE

追記: 2017/7/2

久々にこのエラー出してしまった

events.js:182
      throw er; // Unhandled 'error' event
      ^

Error: listen EACCES 0.0.0.0:80
43
42
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
43
42