投稿日: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です。