豚吐露@wiki

WSL2を常時起動させたい

最終更新:

ohden

- view
管理者のみ編集可

WSL2を常時起動させたい


Windows11 24H2 (26100.4351)
WSL 2.5.7

現象
WSL2でLinuxを起動させても、コンソールを終了させてしばらくすると、WSL2のdistributionなVMが勝手に終了する。
SSH接続中でも、WSLを実行しているターミナルやコマンドプロンプト、PowerShellを終了させると勝手に終了してしまう。

目的
WSL2のVMが終了しないようにしたい。
StartUpにWSLを実行するbatのショートカットを配置し、最小化状態で実行させるとVMは終了しなくなる。が、wslを実行しとるターミナルは非表示にしたい。

対策
1. vbscriptを作成
以下の内容でvbscriptを作成し、任意のpathに保存。拡張子はvbsで、今回は"run_Debian12_on_WSL2.vbs"というfile名にする。
  1. Set ws = CreateObject("WScript.Shell")
  2. ws.run "cmd /c ""C:\\WINDOWS\\system32\\wsl.exe -d Debian""", vbhide
今回はDebianを使ったので、オプションに"-d Debian"を指定。
Ubuntuだったら”-d Ubuntu”に変更すればok。

2. ショートカットを作成
"run_Debian12_on_WSL2.vbs"のショートカットを作成。
プロパティを開き、"ショートカット"タブの"実行時の大きさ"に"最小化"を指定。

3. ショートカットをスタートアップに配置
[Win]+[R]で"ファイル名を指定して実行"に"shell:startup"を指定して、"OK"ボタンを押下。
以下の場所が、エクスプローラーで開くので、2で作ったショートカットを移動させる。
C:\Users\【UserID】\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

これでloginすればWSLが実行されてDebianが起動する。
確認は、コマンドプロンプトかPowerShellから以下のコマンドで確認。
wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         1
  Debian    Running         2

終了させたい場合
コマンドプロンプトかPowerShellから、”wsl -t”で任意のdistributionを指定すれば止まってくれる。
wsl -t Debian
wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         1
  Debian    Stopped         2


更新日: 2025年08月07日 (木) 02時37分48秒

名前:
コメント:

すべてのコメントを見る
記事メニュー
ウィキ募集バナー