あるポートを使用しようと思ったら既に使われている場面ってよくあると思います。tomcat起動しようとしたら8080が既に使われていたりとかね。
そういった時、使用したいポートは何に使われているのかを調べる方法をメモしておきます。
環境はWindows。コマンドプロンプトを使って行います。
1. ポートの状態を調べる
まず使用したいポートがどのプロセスによって使用されているのかを知るために下記のコマンドを討ちます。ここでは例として8080を調べます。
netstat -ano | find ":8080"
netstat -ano
というコマンドと find ":8080"
という2つのコマンドをパイプでつないで実行しています。
netstat
はポートの使用状態を表示するコマンド。このコマンドだけでも使用状態は分かりますが、使用されている全てのポート状態が表示されるので、量が多く、欲しい情報を見つけるのも一苦労です。
そのため、二つ目の find ":8080"
で一つ目のコマンドの結果から「:8080」を含むものだけを表示してくれます。
このコマンドでポート8080が使用されていれば、使用状態が表示されます。何も表示されなければそのポートは使用されていません。
表示されたら、一番右にプロセスID(PID)という項目が表示されてると思います。これを覚えておいてください。
2. PIDからポートを使用しているプロセスを特定
PIDを知った後は続いて下記のコマンドを実行します。ここでは例として上記のコマンドで「12345」というプロセスIDが表示されていたとします。
tasklist | find "12345"
ここでも二つのコマンドをパイプでつなげています。
tasklist
で動いているプロセスを表示。 find "12345"
で「12345」を含むものだけを表示します。つなげる理由は1. と全く同じです。
これで表示されたものがポートを使用しているプロセスの正体になります。あとはそのプロセスを止めても問題があるか無いかを考えて下さい。