🏗️

サーバー起動エラー「EADDRINUSE: address already in use」解決方法

2024/07/18に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

エラー内容

yarn devを実行した際、サーバーが起動しないエラーが発生しました。

$ yarn dev
yarn run v1.22.19
$ next dev -p 3000
 ⨯ Failed to start server
Error: listen EADDRINUSE: address already in use :::3000
    at Server.setupListenHandle 〜
    at listenInCluster 〜
     {
  code: 'EADDRINUSE',
  errno: -48,
  syscall: 'listen',
  address: '::',
  port: 3000
}

✨  Done in 1.29s.

このエラーメッセージは、指定されたポート(この場合は3000番)が既に使用されていることを示しています。

解決方法

以下の手順を実行しました。

1. 使用中のプロセスを確認

$ sudo lsof -i:3000

ポート番号3000を使用しているプロセスをリストとして表示します。
以下が出力例です。

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    12345 user   22u  IPv6 0xabcde12345     0t0  TCP *:3000 (LISTEN)

2. 使用中のプロセスを修了する

次に確認したプロセスを終了するため以下のコマンドを実行しました。
<PID>は、実際のPIDに書き換えてください。上記例だとPID:12345になります。

$ kill -9 <PID>

2. 再度サーバーを起動する

プロセスが正常に終了したことを確認したのち、再度サーバーを起動します。

yarn dev

以上でポート番号の競合問題を解決し、サーバーを正常に起動することができます。

参考

https://qiita.com/YukiYamam/items/a29ede2a77ce9535886d

https://stackoverflow.com/questions/4075287/node-express-eaddrinuse-address-already-in-use-how-can-i-stop-the-process

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion