コンテンツへスキップ
Linux/POSIXエラーエラー
EADDRINUSE

EADDRINUSE — アドレスはすでに使用中です

指定されたネットワークアドレスとポートの組み合わせは、別のソケットによってすでにバインドされています。

linuxmacosunix

このエラーの原因

別のプロセスが要求されたポートですでにリッスンしています。サーバーの再起動時に、以前のソケットが TIME_WAIT 状態にある場合に頻繁に発生します。

修正方法

`SO_REUSEADDR` ソケットオプションを使用して TIME_WAIT アドレスへのバインドを許可してください。`ss -tlnp` または `lsof -i :PORT` でポートを使用しているプロセスを特定してください。

例

# Find process using port 3000
lsof -i :3000
# Or with ss
ss -tlnp | grep 3000
公式ドキュメント

関連するエラーコード