今回は、これまでの取り組みをまとめてみたい。まず、WindowsにサインインするタイミングでWSLを自動起動してUbuntuを動作させる。続いて、UbuntuにインストールしたWebサーバを自動起動させる。これでWindowsにサインインしたらUbuntuのWebサーバが自動的に使えるようになる。WindowsでUbuntuを常用するなら、知っておきたい設定方法だ。→連載「WindowsでUbuntuをはじめる」のこれまでの回はこちらを参照。
Windowsサインイン時にWSLを実行する
まず、WindowsにサインインしたらWSLが動作するように設定する。方法は複数あるが、Windowsのタスクスケジューラを使ってサインイン時にWSLコマンド(C:\Windows\System32\wsl.exe)を実行するように設定するのは順当な方法だ。
タスクスケジューラを起動してタスクを追加する。
トリガーは「ログオン時」に設定する。
操作は「プログラムの開始」とし、対象は「C:\Windows\System32\wsl.exe」とする。
条件と設定は、必要に合わせてチェックすればよい。
ここまで設定して、タスクスケジューラのタスク一覧に追加されていることを確認する。
状態が無効になっていると動作しない。「準備完了」のように次のサインイン時に動作する設定になっていることを確認しておく。
systemd経由でWebサーバを起動する
WSLで動作するUbuntuで自動的にWebサーバが起動してくるように、systemdを有効化する。Ubuntuにアクセスして/etc/wsl.confファイルを作成し、次の設定を追加する。
/etc/wsl.conf
[boot]
systemd=true
systemd経由での操作は前回に説明したとおりだ。基本的にはsystemdを有効化すればインストールしたサーバなどは自動的に起動してくる対象になると思う。または、前回の説明を参考にして自動起動が有効になっているかの確認と、なっていない場合には有効化する操作を行っておく。
システムを再起動して動作を確認
ここまで設定したら動作確認を行う。システムを再起動してサインインを行い、次のようなターミナルが起動してくることを確認する。
この状態でWSLの動作状態を確認すると、次のようにUbuntuが稼働していることが確認できる。
WindowsからWebサーバにアクセスすることも確認できる。
今回説明した設定を行っておくと、このようにサインインしたあとでUbuntuで動作するWebサービスを利用できる。Ubuntuでプロジェクト管理用のWebアプリケーションを動作させるとか、この設定をしておくことで扱いやすくなる。
注意:サインイン時に起動してきたターミナルとプログラムは終了しない
以前は、これでWSL経由でUbuntuがバックグラウンドで動作を続けてくれたのだが、最近の変更でバックグラウンドでの動作は継続されないようになった。
最初に起動してきたターミナルを終了し、ほかのターミナルからWSLの動作状況を確認していると、次のようにWSLがシャットダウンすることを確認できる。
当然、こうなると先ほどアクセスできたWebサーバにアクセスしても次のように見えなくなる。
今のところ、最初の起動してきたターミナルを非表示にしておく簡単な方法は用意されていないように思われる。この辺りはアップデートがあったら取り上げつもりだ。
こんな感じで2つの設定を行っておけば、サインインしたあとで自動的にUbuntuが起動して、そこにセットアップしたサーバが起動して利用できる状態にできる。WindowsでUbuntuを日常的に活用する場合にはこの設定をしておくと便利なことが多いと思うので、参考にしてもらえれば幸いだ。
参考
- Windows Subsystem for Linux Documentation | Microsoft Docs
- What is Windows Subsystem for Linux | Microsoft Docs
- Install Linux on Windows with WSL | Microsoft Docs
- Basic commands for WSL | Microsoft Docs
- Run Linux GUI apps with WSL | Microsoft Docs
- Get started using VS Code with WSL | Microsoft Docs
- Set up Node.js on WSL 2 | Microsoft Docs
- Advanced settings configuration in WSL | Microsoft Docs
- Add or connect a database with WSL | Microsoft Docs
- Comparing WSL 1 and WSL 2 | Microsoft Docs
- Manual installation steps for older versions of WSL | Microsoft Docs
- Set up a WSL development environment | Microsoft Docs
- Install Linux Subsystem on Windows Server | Microsoft Docs
- Troubleshooting Windows Subsystem for Linux | Microsoft Docs
- FAQ's about Windows Subsystem for Linux | Microsoft Docs