mcpField
D
detecting-port-conflicts

detecting-port-conflicts

github.com/spencerpauly開発868424 回インストール13 週間前に更新
リポジトリ

detecting-port-conflicts について

ポート使用中のエラーを診断し、開発サーバーを再開する方法を示すスキルです。プロセスの確認や終了、別ポートの利用を案内します。

主な機能

  1. 01よくあるポート競合エラーの検出
  2. 02lsof による使用プロセスの特定
  3. 03プロセス終了またはポート変更の案内
  4. 04全 Node プロセス終了時の注意喚起

活用シーン

  1. 01開発サーバーが起動しない原因の調査
  2. 02ポートを使用するプロセスの特定
  3. 03空いているポートでのサーバー再起動

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/spencerpauly/awesome-cursor-skills --skill detecting-port-conflicts

インストール後、Claude Code で/detecting-port-conflictsを入力して読み込まれたか確認します。

詳細

ポートの競合を検出する

ポートがすでに使用中で開発サーバーを起動できない場合に、原因を特定して解決します。

検出

ターミナルの出力から、次のパターンを探します。

  • EADDRINUSE
  • address already in use
  • Port XXXX is already in use
  • bind: address already in use
  • OSError: [Errno 98] Address already in use

エラーメッセージからポート番号を抽出します。

原因の特定

ポートを使用しているものを探します。

lsof -i :<PORT> -P -n

これにより、PID、プロセス名、ユーザーが表示されます。よくある原因は次のとおりです。

  • 正常に終了しなかった以前の開発サーバー
  • 別のプロジェクトの開発サーバー
  • Docker コンテナ
  • システムサービス

解決方法

方法 1:ポートを塞いでいるプロセスを終了する
kill <PID>
# If it doesn't stop:
kill -9 <PID>

その後、元のサーバーを再起動します。

方法 2:別のポートを使用する

次に利用可能なポートを提案します。

# Check if port+1 is free
lsof -i :<PORT+1> -P -n

開発サーバーの設定または起動コマンドを更新します。

  • Next.js:next dev -p <PORT>
  • Vite:vite --port <PORT>
  • Express:PORT 環境変数を設定
  • Django:python manage.py runserver <PORT>
方法 3:すべての node プロセスを終了する(最終手段)
killall node

すべてのプロセスを終了するため、ユーザーが確認した場合にのみ提案してください。

ヒント

  • macOS では、1024 未満のポートを使用するには root 権限が必要です。
  • Docker コンテナは、停止後もポートのバインドが残ることがあります。docker ps で確認してください。
  • lsof に何も表示されない場合、ポートが TIME_WAIT 状態の可能性があります。30 秒待つか、別のポートを使用してください。

コメント