Node.jsでhttpサーバー起動時にError: listen EADDRINUSE: address already in use :::8000が出る

Node.jsにてhttpサーバー起動時に発生したエラー

vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ node index.js
events.js:167
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE: address already in use :::8000
    at Server.setupListenHandle [as _listen2] (net.js:1290:14)
    at listenInCluster (net.js:1338:12)
    at Server.listen (net.js:1425:7)
    at Object. (/home/vagrant/workspace/intro-curriculum-3011/index.js:13:8)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
Emitted 'error' event at:
    at emitErrorNT (net.js:1317:8)
    at process._tickCallback (internal/process/next_tick.js:63:19)
    at Function.Module.runMain (internal/modules/cjs/loader.js:745:11)
    at startup (internal/bootstrap/node.js:282:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

要は「当該ポート(8000)は既に使用中だから使えない」というエラー。

上記のコマンド(“node index.js”)を実行する前にも同じコマンドを実行しており、そのときのプロセスが生き残っていることが原因なので起動中のプロセスをkillする。

起動中の"node index.js"をkill

// 起動中のプロセスを確認
$ vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ ps aux | grep node
vagrant   4528  0.0  3.1 561376 31868 pts/1    Sl+  21:22   0:00 node index.js
vagrant   6842  0.0  0.1  14164  1088 pts/0    S+   21:56   0:00 grep --color=auto node

// killでプロセスを終了させる
//   うまく終了しないときは"kill -s 9 プロセスID"
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ kill 4528

// きちんと終了したかどうかをチェック
vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ ps aux | grep node
vagrant   6861  0.0  0.1  14164  1056 pts/0    S+   21:59   0:00 grep --color=auto node

この後、再度httpサーバーを起動すればOK。

Node.jsでhttpサーバーを起動

vagrant@ubuntu-bionic:~/workspace/intro-curriculum-3011$ node index.js
Listening on 8000

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です