LoginSignup
0
0

More than 5 years have passed since last update.

npmのhttp-serverがポート番号重複で起動できない問題への対処

Posted at

npmの http-server を実行すると次のようなエラーになることがあり、これは http-server が使用するポート8080番が他のプロセスによって既に使用されていることが原因として考えられる。これの対処として、ポート8080番を使用しているプロセスを特定して強制終了させる方法を本記事で紹介する。

C:\Users\anonymous\dev>http-server
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE 0.0.0.0:8080
    at Object.exports._errnoException (util.js:837:11)
  (省略)
    at node.js:951:3

筆者はWin環境を使用しているため、ここではWin環境での対処を記す。

netstat -aon | find "8080"

このコマンドでは、ポート8080番を使用しているプロセスを調べる。

TCP    ***.***.***.***:* 0.0.0.0:8080             LISTENING       (数字)

この一番右の(数字)は、ポート8080番を使用しているプロセスのIDである。
次のコマンドでは、このIDを指定してそのプロセスを強制終了する。

taskkill /PID /F (数字)

もう一度 netstat -aon | find "8080" を実行すると空の行が出力される(=ポート8080番を使用しているプロセスが存在しない)ので、再度 http-server を実行すると今度はうまく立ち上がるはずである。
http-server の起動成功時には次のように出力される。
※ルートディレクトリを示す引数に ./static/pages を指定している。

Starting up http-server, serving ./static/pages
Available on:
  http://192.168.24.52:8080
  http://192.168.56.1:8080
  http://127.0.0.1:8080
Hit CTRL-C to stop the server
[Fri Dec 02 2016 15:11:10 GMT+0900 (東京 (標準時))] "GET /" "Mozilla/5
.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chro
me/54.0.2840.99 Safari/537.36"

他環境での対処を知りたい読者は、以下を調べることで代替可能と思われる。

  • 「指定のポート番号を使用しているプロセスを調べるコマンド」
  • 「特定のプロセスを強制終了するコマンド」

以上。

0
0
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
0
0