日本語
Appearance
日本語
Appearance
WSL2 を使い始めたばかりの多くのユーザーが「困惑」を経験します。Linux はインストールされているのに、なぜターミナルを閉じるとしばらくして「自動的にシャットダウン」されるのか?なぜ動き続けてくれないのか?
この記事では、まずこの現象を説明し、次にマイクロソフトがなぜ WSL をこのように設計したのかを解説し、最後に WSL Dashboard を使ってキープアライブ状態の Linux ディストリビューションを起動する方法を紹介します。
次のような場面を経験したことはありませんか?
NOTE
WSL2 のデフォルトの「アイドルタイムアウト」は約 60 秒です。ディストリビューション内で実行中のプロセスがない場合(たとえば、すべてのターミナルを閉じた場合)、WSL 仮想マシンは自動的に停止し、メモリなどのシステムリソースを解放します。
この動作は WSL2 の標準設計であり、故障でもエラーでもありません。
WSL2 は、Hyper-V の軽量仮想マシン(utility VM)を介して完全な Linux カーネルを実行します。実行中の各ディストリビューションは実際にメモリリソースを消費します。すべてのディストリビューションがバックグラウンドに常駐すると、1 台のマシンで複数のディストリビューションを同時に実行する場合、数百 MB から数 GB のメモリを無駄に消費し、マシン全体のパフォーマンスを低下させます。
Windows の設計思想は「リソースは必要に応じて割り当て、使わないときは解放する」です:
そのため WSL は「必要に応じて起動、アイドル時は停止」という戦略を採用し、メモリなどのリソースを不要なときに自動的にシステムへ返却します。
WSL の「アイドル時の自動停止」は、部屋を出るときに電気を消すのと同じで、省エネで効率的です。しかし、「部屋をずっと明るくしておく必要がある」人にとっては面倒です——これこそがキープアライブのニーズが生まれる理由です。
TIP
Linux を常駐させて動かす必要がある場合(サービスのデプロイ、定期タスクの実行、開発サーバーの構築など)は、次の章を読んで、WSL Dashboard を使用してディストリビューションをキープアライブにしましょう。
WSL Dashboard には、Linux ディストリビューションを稼働させ続けるための簡単な方法が 2 つあります。
WSL Dashboard の**「インストール済みの Linux ディストリビューション」**リストで:
クリックすると、ディストリビューションはすぐに起動して動き続け、自分で停止しない限り、アイドル状態による自動停止は発生しません。この方法は、「今、Linux を動かし続ける必要がある」という一時的なキープアライブのシナリオに適しています。
WSL Dashboard の**「インストール済みの Linux ディストリビューション」**リストで:
チェックを入れると、Windows の起動/ログインのたびに、そのディストリビューションが自動的に起動し、手動操作は一切不要で「起動時のキープアライブ」を実現します。この方法は、Linux を長期間オンラインにする必要がある(開発サーバーや常駐サービスなど)シナリオに適しています。
TIP