localhostの既存プロセスを解放する方法

投稿日:2024/11/26 最終更新日:2024/12/11

localhostの既存プロセスを解放する方法

ローカル環境での開発時にポートの競合が発生することがあります。

その際にlocalhost:3000番などよく使うポートでは競合することが比較的多くて色々面倒な時があります。

このような場合に簡単に解消できるポートのプロセス確認と解放手順をまとめます。

【手順】Macの場合

①指定ポートのプロセス確認

lsof -i :ポート番号

最後の「ポート番号」は確認したいポート番号を指定してください。

lsofコマンドはプロセスが開いているファイルを一覧で表示するためのコマンドです。

-iオプションはソケットファイルを対象にするもので、端的に言えばポートのプロセスを表示してくれます。

このコマンドを実行すると指定ポートのプロセスが確認できるはずです。

②指定ポートを解放

kill -9 PID

①を実行した際に指定ポートのプロセスを確認したと思いますが、その中にPIDと書かれている箇所があります。

そこの数字をPIDに代入して上記コードを実行することで指定ポートの解放ができます。

killコマンドは指定したプロセスIDのプロセスを終了させるもので、-9オプションは強制終了を意味します。

その他のオプションを紹介すると、-1は再起動 / –6は中断 / -17は停止 / -18は再開となっています。

そのあとは再度指定ポートのローカルホストにアクセスをして繋がればOKです。

【手順】Windowsの場合

①指定ポートのプロセス確認

netstat -aon | findstr 0.0:ポート番号

末尾の「ポート番号」は確認したいポート番号を指定してください。

Windowsの場合、lsofコマンドは使用できませんので、代わりにnetstatコマンドを使用します。

netstatコマンドは通信中のネットワークの接続状況を表示するためのものです。

-aonオプションは-a-o-nを複数指定したものであり、「すべての接続をプロセスIDとポート番号で表示」となります。

findstrコマンドはファイル内にある文字列を検索するコマンドです。

②指定ポートを解放

taskkill /pid ①で確認したPID /F

①を実行した際に指定ポートのプロセスを確認したと思いますが、その末尾に数字列(PID)がありますので控えておきます。

そして、上記コマンドの①で確認したPIDに入れて実行します。

taskkillコマンドはkillコマンドと同じで指定したプロセスIDのプロセスを終了させるものです。

/pidオプションはPIDで指定することを明示するものです。

末尾の/Fオプションは強制終了を意味します。

そのあとは再度指定ポートのローカルホストにアクセスをして繋がればOKです。