
Windows上でWSL2(Windows Subsystem for Linux 2)を使って開発していると、設定変更の反映や動作不良のリセットのために「WSL2を今すぐ停止・再起動したい」「停止したWSLをコマンドから起動したい」という場面が頻繁に発生します。例えば、.wslconfig や /etc/wsl.conf を書き換えたとき、肥大化したメモリ消費(vmmem / vmmemWSL プロセス)を解放したいとき、あるいはネットワークやコンテナが繋がらなくなったときなどです。
このような場合、Windows PC全体を再起動する必要はありません。Windows側のPowerShellやコマンドプロンプトから wsl --shutdown などのコマンドを1行実行するだけで、わずか数秒で安全に停止・起動・再起動が行えます。
この記事では、検索ユーザーが今すぐコピペして使える「再起動・停止・起動のやりたいこと別コマンド早見表」を冒頭で提示したうえで、WSL全体の一括シャットダウン(wsl --shutdown)、特定ディストリビューションのみの個別停止(wsl -t)、起動方法(wsl / wsl -d)、稼働状態の確認(wsl -l -v)、さらにフリーズして応答しない場合のWindowsサービス強制再起動手順までを網羅して解説します。
この記事で行うこと
- WSL2の再起動・停止・起動・状態確認コマンドを早見表で素早く確認する
- WSL2全体を一括停止(
wsl --shutdown)してから起動(wsl)する手順と影響範囲を理解する - 特定のLinux環境(Ubuntu等)のみを個別停止・再起動する手順(
wsl -t/wsl -d)を確認する - WSL2の稼働状況(
Running/Stopped)を確認するコマンド(wsl -l -v)の使い方を覚える - フリーズして応答しない場合のサービス再起動(
WslService/LxssManager)とプロセス強制終了手順を確認する
前提条件・対象読者
| 項目 | 内容 |
|---|---|
| 対象OS | Windows 11 / Windows 10 |
| 対応環境 | WSL 2 / WSL 3.0.1以降(2026年9月29日リリースのWSL containers環境を含む) |
| 最終確認日 | 2026年10月16日 |
| コマンド実行場所 | Windows側のPowerShell、Windows Terminal、またはコマンドプロンプト(Linux内のBashではなくWindowsホスト側から実行) |
| 対象読者 | WSL2の再起動・停止(wsl --shutdown)・起動コマンドをすぐ知りたい方、フリーズ時の強制終了方法を探している方 |
1. 【結論】WSL2の再起動・停止・起動コマンド早見表
まずは、目的別にそのままコピー&ペーストして使えるコマンド一覧です。すべてWindows側のPowerShell(またはコマンドプロンプト)で実行します。
| やりたいこと | 実行するコマンド(PowerShell) | 動作・影響範囲 |
|---|---|---|
| WSL2全体を完全停止する | wsl --shutdown | すべてのLinux環境と裏側の仮想マシン(VM)を完全終了し、メモリを全解放する |
| 既定のWSLを起動する | wsl | 停止しているデフォルトのLinuxディストリビューションを起動してシェルに入る |
| 指定したLinuxを起動する | wsl -d Ubuntu | 複数のLinux環境から名前を指定して起動する(--distribution) |
| 1行で即座に全体再起動する | wsl --shutdown; wsl | 完全シャットダウンと再起動をワンライナーで連続実行する(cmdの場合は & で連結) |
| 特定のLinuxだけを停止する | wsl -t Ubuntu | 他のLinuxやコンテナを動かしたまま、指定環境のみを終了する(--terminate) |
| 特定のLinuxだけを再起動する | wsl -t Ubuntu; wsl -d Ubuntu | 指定したディストリビューションのみを停止して即座に起動し直す |
| 稼働状態(起動/停止)を確認 | wsl -l -v | 各ディストリビューションが Running(稼働中)か Stopped(停止中)かを表示する |
| フリーズ時に強制再起動する | Restart-Service WslService | wsl --shutdown が応答しない場合に管理者PowerShellからWSLサービスを再起動する |
| WSLコンテナを再起動する | wslc container restart <名前> | WSL 3.0.1以降の「WSL containers(wslc)」上の個別コンテナを再起動する |
PowerShellとコマンドプロンプトでの「1行再起動ワンライナー」の違い
WSLにはLinux本体向けの wsl --restart という単体オプションは存在しないため(WSL 3.0.1時点でも同様)、「停止(wsl --shutdown)してから起動(wsl)する」ことで再起動を行います。
PowerShellで1行で実行する場合はセミコロン(;)でつなぎます。
wsl --shutdown; wsl
コマンドプロンプト(cmd.exe)で1行で実行する場合はアンパサンド(&)でつなぎます。
wsl --shutdown & wsl
2. WSL2全体をシャットダウンして起動・再起動する方法(wsl –shutdown)
WSL2で最も確実かつ頻繁に使われる停止・リセット方法が wsl --shutdown コマンドです。
手順1:Windows側のターミナル(PowerShell)を開く
キーボードの Win + X キーを押し、メニューから「ターミナル」または「PowerShell」を選択して開きます。
注意点として、UbuntuなどのLinuxシェルの中からではなく、必ずWindowsホスト側のPowerShellまたはコマンドプロンプトから実行してください。
手順2:wsl –shutdown で全体停止する
以下のコマンドを入力して Enter キーを押します。
wsl --shutdown
実行すると数秒で処理が完了し、メッセージを出さずに次のプロンプトへ戻ります。この時点で内部では以下の処理が行われています。
- 稼働中のすべてのLinuxディストリビューション(Ubuntu、Debian等)が安全に停止する
- WSL2のバックグラウンド軽量仮想マシン(Utility VM)自体が完全にシャットダウンされる
- タスクマネージャー上でメモリを消費していた
vmmem(またはvmmemWSL)プロセスが終了し、確保されていたメモリ(RAM)がWindowsホストへすべて解放される
手順3:WSL2を起動する(wsl / wsl -d)
停止したWSL2を再び起動するには、以下のいずれかのコマンドを実行します。
既定(デフォルト)のディストリビューションを起動する場合:
wsl
特定のディストリビューション名を指定して起動する場合(例:Ubuntu-24.04):
wsl -d Ubuntu-24.04
また、コマンドを使わなくても、スタートメニューやWindows Terminalの新しいタブから「Ubuntu」のアプリアイコンをクリックするだけで自動的にWSL2が起動します。
wsl –shutdown が必要になる代表的な3つの場面
- 設定ファイル(
.wslconfig)の変更を反映したいとき:
Windowsのユーザーフォルダ(C:\Users\<ユーザー名>\.wslconfig)でメモリ上限やCPUコア数、ネットワークモードなどを変更した場合、wsl --shutdownで仮想マシン自体を一度落とさないと新しい設定が読み込まれません。 - 肥大化したメモリ(
vmmemWSL)を即座に解放したいとき:
コンテナのビルドや大規模なデータ処理を行った後、Linux側のキャッシュメモリが残ってWindowsの動作が重くなることがあります。wsl --shutdownを実行すれば一瞬でメモリを初期状態へ戻せます。 - スリープ復帰後の時刻ズレやネットワーク不通を直したいとき:
ノートPCをスリープから復帰させた際、WSL2内の時刻がズレたりネットワーク接続が切れたりしてapt updateやgit pushがエラーになることがあります。全体再起動を行うことでWindowsホストと再同期されます。
実行時の注意点(Docker Desktopやwslcへの影響)
Docker Desktop(WSL2バックエンド)や、WSL 3.0.1で正式版となったWSL containers(wslc)を利用している場合、wsl --shutdown を実行すると稼働中のコンテナもすべて停止します。データベースの書き込み中やバッチ処理の実行中にシャットダウンしないよう注意してください。
なお、WSL自体ではなく wslc 上の特定のコンテナだけを再起動したい場合は、wslc container restart <コンテナ名> コマンドを使用します。
3. 特定のディストリビューションのみ停止・再起動する方法(wsl -t)
「Ubuntuの動作だけリセットしたいが、裏で動いているDocker環境や別のLinuxディストリビューションは止めたくない」という場合は、個別に停止する -t(--terminate)オプションを使用します。
手順1:ディストリビューション名を確認する
まず、登録されている正確なディストリビューション名を一覧表示します。
wsl -l -v
手順2:指定した環境のみを停止する(wsl -t)
以下の書式で対象の環境だけを選んで停止します(例:名前が Ubuntu の場合)。
wsl -t Ubuntu
省略形の -t の代わりに --terminate を使っても同じ動作になります。
wsl --terminate Ubuntu
手順3:指定した環境を起動する(wsl -d)
停止後、再びその環境を起動するには -d オプションを使います。
wsl -d Ubuntu
個別停止から再起動までを1行で実行したい場合は、以下のように記述します。
wsl -t Ubuntu; wsl -d Ubuntu
wsl –shutdown と wsl -t の違いまとめ
wsl --shutdown:WSL2の仮想マシン(VM)ごと完全に電源を切る。全ディストリビューションが停止し、メモリ(vmmemWSL)が完全に解放され、.wslconfigの変更も反映される。wsl -t <名前>:指定したLinuxディストリビューションのプロセスのみを終了する。仮想マシン自体や他の環境は動き続けるため、別環境での作業を邪魔しない(ただし/etc/wsl.confの反映には使えるが、.wslconfigの反映やVMメモリの完全解放にはwsl --shutdownが必要)。
4. WSL2の稼働状態(起動中・停止中)を確認するコマンド(wsl -l -v)
「本当にWSLが停止したか確認したい」「今どのLinuxが起動しているか知りたい」という場合は、wsl -l -v(または wsl --list --verbose)を実行します。
wsl -l -v
実行すると、以下のように現在のステータスが一覧で表示されます。
NAME STATE VERSION
* Ubuntu-24.04 Running 2
docker-desktop Stopped 2
NAME:インストールされているディストリビューション名(先頭の*はwslコマンド単体で起動する既定の環境)STATE:稼働状態。Runningは起動中、Stoppedは停止中を表すVERSION:WSLのアーキテクチャバージョン(WSL2環境であれば、WSL 3.0.1へ更新した後もディストリビューションのVERSION列は2と表示されます)
wsl --shutdown の実行後に wsl -l -v を確認し、すべての行の STATE が Stopped になっていれば完全に停止しています。
5. WSLが応答しない・停止しない場合の強制終了手順(WslService再起動)
まれにWSL2の内部プロセスがデッドロック(ハングアップ)を起こし、wsl --shutdown や wsl -t を実行してもプロンプトが返ってこなくなることがあります。その場合は、Windowsを丸ごと再起動する前に以下の強制リセット手順を試してください。
対処法1:WindowsのWSL管理サービスを再起動する(管理者PowerShell)
WSLを裏側で制御しているWindowsサービス(WslService または旧版の LxssManager)を再起動することで、ハングアップしたWSLを強制的にリセットできます。
PowerShellを右クリックして「管理者として実行」で開き、以下のコマンドを実行します。
Microsoft Store版・現行のWSL(Windows 11 / 10の標準環境)の場合:
Restart-Service -Name WslService
旧来のWindows組み込み版WSL(古いWindows 10環境など)の場合:
Restart-Service -Name LxssManager
自分の環境でどちらのサービス名が使われているか確認したい場合は、以下のコマンドで検索できます。
Get-Service -Name *wsl*, *lxss*
対処法2:taskkillコマンドでプロセスを直接強制終了する
サービスの再起動すらタイムアウトして応答しない場合は、管理者PowerShellから taskkill コマンドでプロセスを直接強制終了します。
taskkill /f /im wslservice.exe
taskkill /f /im wsl.exe
/f:プロセスを強制終了(Force)するオプション/im:終了させる実行ファイル名(Image Name)を指定するオプション
また、タスクマネージャー(Ctrl + Shift + Esc)の「詳細」タブを開き、wslservice.exe や vmmemWSL を右クリックして「タスクの終了」を実行する方法も有効です。
対処法3:wsl –update で最新のWSLへ更新する
フリーズが頻繁に発生する場合は、WSLパッケージやLinuxカーネルの古い不具合を踏んでいる可能性があります。以下のコマンドで最新の安定版(WSL 3.0.1以降)へアップデートしておきましょう。
wsl --update
まとめ
WSL2の再起動・停止・起動に関する重要ポイントを整理します。
- WSL2全体を完全停止・メモリ解放・設定反映するには
wsl --shutdownを実行する - 停止したWSL2を起動するには
wsl(または環境指定のwsl -d <名前>)を実行する - PowerShellから1行で即座に再起動するなら
wsl --shutdown; wslが最も手軽 - 他の環境やコンテナを止めずに特定のLinuxだけリセットするなら
wsl -t <名前>を使う - フリーズしてコマンドが効かない場合は、管理者PowerShellから
Restart-Service -Name WslServiceでサービスを再起動する
Windows PC全体を再起動しなくても、これらのコマンドを使い分けるだけで数秒でクリーンな開発環境を取り戻せます。
本格的なサーバー運用ならVPSがおすすめ
自宅のPCで構築した環境をインターネット上に公開して本番運用するなら、初期費用無料で導入しやすい「さくらのVPS」などのクラウド環境が便利です。
PR
次に読むおすすめ記事
WSLの最新バージョン(WSL 3.0.1)の導入手順や、.wslconfig を使ったメモリ制限・高速化設定については、以下の記事もあわせて参考にしてください。
- 【WSL 3.0】WSL2との違いと導入手順|正式版コンテナの使い方
- WSL2が重い・遅い原因と高速化設定まとめ|メモリ制限とI/O改善
- WSL2とDockerのWindows開発環境構築 完全ガイド

