Address already in use エラーの対処方法

2022-01-27

address already in use

Goで開発していてVScodeでローカルテスト、デバッグ等をしようとして、
サーバーを立ち上げようとして listen tcp :11240: bind: address already in use などと表示されることがちょくちょくあるので対応方法をメモ。

lsofコマンドで占有しているプロセスを確認

使おうとしてるポート番号[11240]が別のプロセスと被ってるので、使えないよってエラーなのでポートを占有してるプロセスを確認。

% lsof -i:11240

プロセスID[PID]を確認

これを見るとPID:47250が占有してみたいですね。
占有プロセスをキルするか、サーバー立ち上げるポートをずらさないとだめみたいですね。

% lsof -i :11240
COMMAND     PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
__debug_b 47250 user    7u  IPv6 0x8613dadbaba6c6ff      0t0  TCP localhost:11240->localhost:55666 (CLOSE_WAIT)
__debug_b 47250 user    8u  IPv6 0x8613dadbc80486ff      0t0  TCP *:11240 (LISTEN)

該当のプロセスをキル

いちいちずらすの面倒なのでキルしちゃいます。
killコマンドで PID:47250 をキル

% kill -9 47250

ポートを占有していたプロセスをキルすると正常にサーバーが立ち上がるようになります。