アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【WindowsUbuntu
Windows11+WSL2でUbuntuを使う【5】WSL2/Ubuntu本体自体をマシン起動時に自動起動させ常駐させる
POSTED BY
2023-09-11

Windows11+WSL2でUbuntuを使う【1】インストール
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Windows11+WSL2でUbuntuを使う【3】sshdを入れてTera Termで使用+自動起動
Windows11+WSL2でUbuntuを使う【4】sudo,bashrc,開発パッケージ導入,timezone,日本語環境設定

サーバーとして運用するには、マシン起動時にWSLを自動起動し無操作時勝手に終了させないようにしなければ使い物にならない。WSLは何故か操作していないと勝手に落ちる(Stopped)になるのだ。Linuxってサーバー用途がほとんどのはずだがこの仕様は全く理解できない。。

いろいろ調べてタスクスケジューラやらバックグラウンドリスタートやら試行錯誤してやってみたが、結局スマートな方法は見つからなかった。なので苦肉の策として、以下のような形で実現した。

1、Windows自体の無操作スリープはオフにする(ディスプレイの電源は切ってもOK)
2、ローカルアカウントに切り替えて、マシン起動時自動でパスワード入力無しでオートログインさせる
3、ホームフォルダに「wsl」とだけ書いたバッチファイルを作成して設置する
4、3、のバッチファイルを右クリックして「ショートカットの作成」をする
5、スタートアップフォルダを開き、4、のショートカットを設置する
6、5、で設置したショートカットを右クリックして「プロパティ」を開き、「ショートカット」→「実行時の大きさ」→「最小化」としておく。

とりあえずこれで、マシン起動時自動でWSLが最小化ウインドウで立ち上がり、閉じない限り常駐する。

1、Windows自体の無操作スリープはオフにする(ディスプレイの電源は切ってもOK)

設定→システム→電源→画面とスリープ→電源接続時に、次の時間が経過した後にデバイスをスリープ状態にする、をなしにする。WSLをサーバー用途なら、当然親マシンのWindowsもスリープさせるわけにはいかない。

2、ローカルアカウントに切り替えて、マシン起動時自動でパスワード入力無しでオートログインさせる

【Windows11】マシン起動時にパスワード入力を省略して自動ログインする

を参照してください。

3、ホームフォルダに「wsl」とだけ書いたバッチファイルを作成して設置する

どこでも良いのですがとりあえず

C:\Users\hogeuser\open-wsl.bat

なるファイルを手動で作成し、そのバッチファイルの中身は

wsl

とだけ、wslコンソールを起動するコマンドのみ記述しておきます。

4、3、のバッチファイルを右クリックして「ショートカットの作成」をする

open-wsl.bat - ショートカット が出来上がります。

5、スタートアップフォルダを開き、4、のショートカットを設置する

エクスプローラを起動し、パスが表示されているウインドウバーに

shell:startup

と入力します。そうすると、そのユーザーのスタートアップフォルダが開きます。ここにプログラムのショートカットを放り込んでおくと、ログイン時に実行してくれます。

ここに、open-wsl.bat - ショートカット を移動して置いておきます。

6、5、で設置したショートカットを右クリックして「プロパティ」を開き、「ショートカット」→「実行時の大きさ」→「最小化」としておく。

たいして邪魔になるものでもないですが、上記の操作をしておくことで、WSLウインドウを最小化した状態でタスクバーに常駐させておけます。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】