Skip to content

WSL ディストリビューションのキープアライブ ​

WSL2 を使い始めたばかりの多くのユーザーが「困惑」を経験します。Linux はインストールされているのに、なぜターミナルを閉じるとしばらくして「自動的にシャットダウン」されるのか?なぜ動き続けてくれないのか?

この記事では、まずこの現象を説明し、次にマイクロソフトがなぜ WSL をこのように設計したのかを解説し、最後に WSL Dashboard を使ってキープアライブ状態の Linux ディストリビューションを起動する方法を紹介します。

1. 現状:ターミナルを閉じると、Linux はすぐに自動で停止する ​

次のような場面を経験したことはありませんか?

  1. Linux ディストリビューションのターミナルを開くと、Linux は自動的に起動し、コマンドを実行する必要はありません;
  2. ターミナルウィンドウを閉じても、Linux は動き続けません——約 60 秒後に自動的に停止されます;
  3. 再びターミナルを開くと、Linux はまた自動的に起動します。この繰り返しです。

NOTE

WSL2 のデフォルトの「アイドルタイムアウト」は約 60 秒です。ディストリビューション内で実行中のプロセスがない場合(たとえば、すべてのターミナルを閉じた場合)、WSL 仮想マシンは自動的に停止し、メモリなどのシステムリソースを解放します。

この動作は WSL2 の標準設計であり、故障でもエラーでもありません。

2. なぜマイクロソフトは WSL をこのように設計したのか? ​

2.1 WSL2 は本質的に軽量仮想マシンである ​

WSL2 は、Hyper-V の軽量仮想マシン(utility VM)を介して完全な Linux カーネルを実行します。実行中の各ディストリビューションは実際にメモリリソースを消費します。すべてのディストリビューションがバックグラウンドに常駐すると、1 台のマシンで複数のディストリビューションを同時に実行する場合、数百 MB から数 GB のメモリを無駄に消費し、マシン全体のパフォーマンスを低下させます。

2.2 リソースを必要に応じて割り当てる設計理念 ​

Windows の設計思想は「リソースは必要に応じて割り当て、使わないときは解放する」です:

  • ほとんどのユーザーにとって:ターミナルを開く = Linux が必要;ターミナルを閉じる = 当面は不要;
  • Linux を 24 時間 365 日途切れなく動かす必要があるのは、ごく一部のユーザーだけです。

そのため WSL は「必要に応じて起動、アイドル時は停止」という戦略を採用し、メモリなどのリソースを不要なときに自動的にシステムへ返却します。

2.3 たとえ話:部屋を出るときに電気を消す ​

WSL の「アイドル時の自動停止」は、部屋を出るときに電気を消すのと同じで、省エネで効率的です。しかし、「部屋をずっと明るくしておく必要がある」人にとっては面倒です——これこそがキープアライブのニーズが生まれる理由です。

TIP

Linux を常駐させて動かす必要がある場合(サービスのデプロイ、定期タスクの実行、開発サーバーの構築など)は、次の章を読んで、WSL Dashboard を使用してディストリビューションをキープアライブにしましょう。

3. WSL Dashboard でキープアライブの Linux を起動する ​

WSL Dashboard には、Linux ディストリビューションを稼働させ続けるための簡単な方法が 2 つあります。

方法 1:「起動」ボタンをクリックする ​

WSL Dashboard の**「インストール済みの Linux ディストリビューション」**リストで:

  1. キープアライブしたいディストリビューションを見つけます;
  2. そのディストリビューションの行にある**「起動」**ボタンをクリックします。

クリックすると、ディストリビューションはすぐに起動して動き続け、自分で停止しない限り、アイドル状態による自動停止は発生しません。この方法は、「今、Linux を動かし続ける必要がある」という一時的なキープアライブのシナリオに適しています。

方法 2:「Windows 起動時にこのディストリビューションを自動的に起動します。」にチェックを入れる ​

WSL Dashboard の**「インストール済みの Linux ディストリビューション」**リストで:

  1. 対象のディストリビューションの行にある**「設定」**ボタンをクリックして、設定ダイアログを開きます;
  2. ダイアログで**「Windows 起動時にこのディストリビューションを自動的に起動します。」**にチェックを入れます;
  3. 設定を保存します。

チェックを入れると、Windows の起動/ログインのたびに、そのディストリビューションが自動的に起動し、手動操作は一切不要で「起動時のキープアライブ」を実現します。この方法は、Linux を長期間オンラインにする必要がある(開発サーバーや常駐サービスなど)シナリオに適しています。

TIP

  • 一時的に必要なだけ → 方法 1(「起動」をクリック)を使用;
  • 長期間オンラインにする必要がある → 方法 2(「Windows 起動時にこのディストリビューションを自動的に起動します。」にチェック)を使用。