最近vue.js使ったWebサービス開発の勉強をしてたのですが、ある時npm run serve
を叩いてもlocalhostに繋がらなくなったので、その対応メモです。
ポートを占有しているプロセスを見つける
まずは、ポートを占有しているプロセスを見つけます。今回は8080番ポートに繋がらなくなったので、このポートを占有しているプロセスを特定します。
c:\>netstat -ano | find ":8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 2272
今回の場合ですと、PIDが2272のプロセスが8080番ポートを占有しているようです。
なお、netstatで使用しているオプションの意味合いはこんな感じです。
a | すべてのポートを表示 |
n | 名前解決をせずに表示(IPアドレスのまま表示) |
o | プロセスID(PID)を表示 |
プロセスを確認&強制終了する
PIDからプロセス名の特定は、タスクマネージャーを使えば簡単にできます。
タスクマネージャーを開いて、詳細
タブを開きPIDからプロセス名を特定します。この場合ですと、PID 2272のプロセスはnode
であることがわかります。
あとは、node
を選択してタスクの終了
をクリックすると、8080番ポートを占有していたプロセスを強制終了できます。
番外編 ~コマンドでプロセスを確認&強制終了する~
タスクマネージャーを使わなくても、コマンドを使用しても同様のことができます。
PIDからプロセス名を確認する
Windowsにはps
コマンドはありませんが、似たようなコマンドとして、tasklist
コマンドというものがあります。
このコマンドを使用しても、PIDからプロセス名を特定できます。
c:\>tasklist | find "2272"
node 2272 Console 1 266,048 K
ポート占有しているプロセスを強制終了する
Windowsにもkill
コマンドっぽいコマンドとしてtaskkill
コマンドがあるので、コマンドからもプロセスを強制終了できます。
c:\>taskkill /F /PID 2272
ただ、管理者権限のコマンドプロンプトでこのコマンドを叩いても、こんな感じでエラーが表示されて終了できない場合があったので、タスクマネージャーから強制終了するのが間違いないと思います。
c:\>taskkill /F /PID 2272
エラー: PID 2272 のプロセスを強制終了できませんでした。
理由: アクセスが拒否されました。
アクセスが拒否される原因をご存知の方は教えてください・・・
参考:
[TIPS]Windowsで、あるポート番号をListenしているプロセスを調べてkillする - Qiita
あるポート番号をListenしているプロセスを調べるnetstatコマンドで一覧取得するfindで絞り込む(grepのような機能)例ポート番号 8080 をListenしているプロセス(PI…
コメント