今回はWSLの自動&常駐起動しておくための設定をした作業記録です。
TeraTermやWinSCPで常時繋がるようにするためには設定が必要でした。
常時ターミナルソフトやFTPソフト,あるいはリモート接続をできるようにと考えている方への参考になれば幸甚です。
前提知識
VBS

Microsoftが開発したプログラミング言語で,「VBScript」(ブイビースクリプト)の略称です。
「Visual Basic」というプログラミング言語を真似て開発されています。
Windowsであれば標準で扱うことが可能です。
スタートアップ

PC起動と同時にソフトウェアやプログラムを実行できる機能です。
実行したいソフトウェアやプログラムを所定のフォルダ内へ格納することで,自動的に起動することができます。
なお,PC内の全ユーザに適用する場合と現在ログインしているユーザにのみ適用する場合とで格納場所が異なります。
「ファイル名を指定して実行」(「Windows」+「R」)にて,それぞれ以下を実行することで所定のフォルダを開けます。
- ・全ユーザに適用する場合
-
shell:common startup
- ・現在ログインしているユーザにのみ適用する場合
-
shell:startup
タスクマネージャー

PC内で起動しているソフトウェアやプログラムを管理できる機能です。
使用しているソフトウェア確認はもちろん,CPUやメモリの使用率も確認することができます。
もしソフトウェアがフリーズしてしまった場合,タスクマネージャーから強制的に閉じる操作をすることも可能です。
事象整理
問題点
ある時,TeraTermでの接続を試みたら「接続が拒否された」とのメッセージが出てきました。

原因
以下のコマンドで起動状態を調べたところ,WSL2が停止していました。
もちろん,意図して停止するような操作は何もしていません。
1 |
wsl -l -v |

調べたところ,WSL2は一定時間(60秒?)何も操作をしないと自動停止する仕様となっているようです。
サーバ(Ubuntu)が起動していない(シャットダウンした状態)ため,TeraTermやWinSCPで接続できないのも当然ということでした。

とんだ罠というか,自動で停止するんですね。



メモリ等のリソース消費を少しでも抑える目的があるのかもしれないね。
WSL2は,一定時間(60秒?)何も操作をしないと自動停止する。
対策方針
以下を対策方針として定めました。
- WSL2の常駐起動設定をする。
WSL2を常時起動しておくようにすれば,いつでもターミナルソフトやFTPソフトで接続可能となります。 - PC起動と同時にWSLを起動するようにも設定する。
PCを起動した際に毎回操作するのも大変なため,起動と併せてWSL2も起動できるようにします。
設定
WSL2の常駐起動
スクリプトを作成・実行します。
BATではターミナル画面が出てきて煩わしいため,ターミナル画面を非表示とするためにVBSを利用することにしました。
コードは以下の通りです。(外部サイトにて掲載してあったソースコードをそのまま利用。)
1 2 |
Set ws = CreateObject("Wscript.Shell") ws.run "cmd /c wsl", vbhide |
コマンドプロンプトを起動して,「wsl」コマンドを実行するだけのプログラムかと思います。
作成したファイルをダブルクリックして実行することで,WSLが常に起動した状態となります。


PC起動時のWSL起動設定
PC起動後は当然ながらWSL2は停止しており,起動するためにはスクリプトの実行が必要です。
毎回のように手動で実行するのも手間なため,PC起動と併せてWSLも起動するよう設定をします。
「ファイルを指定して実行」(「Windows」+「R」)を開き,「名前」に「shell:startup」を入力して「OK」を押下します。


開いたフォルダ内にスクリプトを格納します。


PC再起動
PCを再起動して,以下を確認します。
- 「タスクマネージャー」を起動(「Ctrl」+「Shift」+「Esc」)して,「プロセス」を開きます。
- 「VmmemWSL」が一覧に載っていることを確認します。
- 「コマンドプロンプト」を起動して,以下のコマンドを実行します。
1 |
wsl -l -v |
- WSLが起動していることを確認します。
検証
メモリ消費
常駐設定をして性能に影響するのも本末転倒なため,念のためリソース(メモリ)の消費量も確認してみました。
WSLを停止したところ,メモリが62%→58%となりました。
約5%前後は使用していそうな所感です。(その時々によって違いはあるかと思います。)



検証したPCのメモリ総容量は16GBです。


まとめ
今回はWSLの自動&常駐起動しておくための設定記録を投稿しました。
常駐起動すると少なからずメモリを消費するため,実施する際は自身のPCにおいて使用状況を確認してからが良さそうです。
最低限スクリプトだけでも作成しておけば,起動はかなり楽になりそうです。
念のため停止用のスクリプトも作成しておいて,手動でも操作できるようにしておきます。