質問: いつもお世話になっています。 下記の質問についてご存知の方がいらっしゃいましたらご教示を願います。 --- 【質問の主旨】 ------- ブラウザのアドレスバーに`localhost:8080`を入力してアクセスすると、過去にNode.jsで起動したことがあるものの、すでに停止したと思われるページが表示されます。 この表示を停止させて **「このサイトにアクセスできません localhost で接続が拒否されました。」** と言う画面に表示するためにはどうすれば良いでしょうか? 【質問の補足】 ------- ### 1. クライアントPCはmacOSでブラウザはGoogle Chromeを使用しています。下記の作業を行いましたが、ページは表示されたままです。 ``` 右クリック ↓ [検証] ↓ ブラウザのアドレスバーの左にある[リロード]にカーソルを当てる ↓ [キャッシュの消去とハードの再読み込み]をクリック ``` ### 2. Qiitaでバックグラウンドで動作するNode.jsプロセスを停止させるというページを見つけました。その記事によると、実行中のプロセスを一覧表示すると言うコマンドとそのプロセスを停止させるコマンドが紹介されています。 ``` $ ps -e | grep node | awk '{print $1}' 54044 63221 63239 63241 63637 65703 ``` とりあえず実行中のプロセスを一覧表示する`ps`コマンドを実行すると上記のプロセスIDが返ってきました。ですがプロセスを停止させる、 ``` $ kill -9 [プロセスID] ``` はまだ実行していません。`kill`コマンドは使ったことがなく、果たして本当に使っても良いかどうか分かりません。 --- 以上、ご確認よろしくお願い申し上げます。
回答: 今回のケースでは、node.jsプロセスは問題なく終了されていたものの、`localhost:8080`に**Service Worker**が登録されたままであったために`localhost:8080`にアクセスすると依然としてページが表示されていたと考えられます。 Service Workerはオフラインの状態でもページを動作させる機能を持つため、node.jsプロセスを終了して`localhost:8080`のサーバーにアクセス不能にしたり、あるいはキャッシュを消したりしても`localhost:8080`を開くとページが表示され続けることがあります。 Service Workerの登録を解除するは、`localhost:8080`でChromeのデベロッパーツールを開き「Application」タブに移動しService Workersというところを開きます。下の画像のようにService Workerが登録されていれば、Unregisterリンクをクリックして登録を解除します。これにより`localhost:8080`を開いてもページが表示されなくなることが期待されます。 !Applicationパネル