【Windows】ポートが重複した際などに指定したポートを強制終了するコマンド

node.jsやDockerなどいろいろ動かしていると、portの競合で起動しないことがよくあります。

直近だとLocal(旧Local by Flywheel)でApache/2.4.53 (Debian) Server at xxxxx.local Port 80のエラーが出ました。

portを変更してもいいですが、いくつも動かしてると何で使ってるportかも分からなくなってくるので、何のアプリケーションで使用しているか確認してから強制終了するコマンドです。

対象portが80、該当のプロセスID(PID)が12345の場合の例。

# 使用中のプロセスID(PID)を確認
> netstat -ano | findstr 0.0.0.0:80
TCP         0.0.0.0:80             0.0.0.0:0              LISTENING       12345

# プロセスID(PID)からアプリケーション名を確認する
> tasklist /fi "pid eq 12345"
イメージ名                      PID セッション名       セッション#  メモリ使用量
========================= ======== ================ =========== ============
nginx.exe                    12345 Console                    1     10,156 K

# プロセスの強制終了
> taskkill /F /PID 12345
成功: PID 12345 のプロセスは強制終了されました。

最初のコマンドnetstat -ano | findstr 0.0.0.0:80で右端に出てくる数字(この場合12345)がPIDです。

TCP         0.0.0.0:80             0.0.0.0:0              LISTENING       12345