CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回は、WSL 2 と WSL2へ移行する手順について説明しました。今回は、4月に追加された新しいUbuntu20.04、WSLとWSL2を使用できるWindows Terminal 、WSL2でサービスを起動する方法を説明します。
Ubuntu 20.04は、2020年4月にリリースされたUbuntuの新しいLTS(Long Term Support)になります。普段ユーザが使用する言語、ライブラリのバージョンアップなどが含まれています。
Ubuntu20.04のインストールは、Windows Storeから行ってください。インストール後の手順はUbuntu18.04 と同様で、アプリケーションを開いた後、ユーザ名とパスワードを設定するだけです。すでにUbuntu 18.04がインストールされている場合、すべてのディレクトリが Ubuntu 20.04 と異なることに注意してください。
また、WSLのデフォルトを WSL2 にしていない場合は、WSL1でインストールされます。WSLインストールのデフォルトをWSL2に変更するには、管理者権限のPowerShellで以下のコマンドを実行します。
wsl --set-default-version 2
Windows Terminal は、Microsoftがオープンソースプロジェクトとして開発した、既存のコンソールに代わる新しいターミナルソフトウェアです。Windows Terminalでは、Powershell/cmd.exe とともに、WSLを起動する事ができます。
Windows Terminalをインストールして最初に起動するとPowerShellが起動します。タブ右端の「V」を押すと、メニューが開きます。PowerShellと同様にUbuntuなどが含まれていて、それを選択するとUbuntuが起動します。
Windows Terminalの機能は様々ありますが、json形式で書かれた設定ファイルを直接設定する必要があります。詳細については、Microsoftの公式ドキュメントを参照してください。
WSL2で動作するLinuxのサービスはWindowsのサービスと異なり、systemd というデーモン(常時動作するプロセス)が管理します。WSLおよびWSL2では、initdと呼ばれるサービス経由でbashが起動します。Linuxでは、systemdを1番めのプロセスとして起動する必要があります。そのための手順は色々あると思いますが、よく使用されるのは geine というコマンドを使用する方法です。
genieは、WSL2上でsystemd を起動するためのコマンドです。genieはWSL2の中でPID名前空間を使用して、systemdのpidが1の状態で起動します。これにより、systemdによるサービスの制御が行えます。
Ubuntu系を使用している場合、最新リリースのページ (現在は1.26)にsystemd-genie.deb
というパッケージファイルが用意されてるので、そのファイルをダウンロードします。genieはMicrosoft の.NET Core 3.1 に依存しています。以下のコマンドを実施して、.NET Core のランタイムをインストールします。
sudo apt-get update; \
sudo apt-get install -y apt-transport-https && \
sudo apt-get update && \
sudo apt-get install -y aspnetcore-runtime-3.1
その後、ダウンロードしたsystemd-denie.deb
をインストールします。
sudo dpkg -i systemd-genie.deb
これで、/usr/bin/genie
としてインストールされました。
genie の 起動方法は簡単で、root権限でgenie -i
を実行するだけです。Windowsへのログオン時に実行するのが望ましいので、タスクスケジューラに登録します。
C:\Windows\System32\wsl.exe
を、引数として-d Ubuntu-20.04 -- /usr/bin/genie -i
を指定して「次へ」を選択します上記では、Ubuntu-20.04 を指定していますが、Ubuntu-18.04のように別のディストリビューションも指定できます。
genie 起動後にWSLを起動すると、ホスト名の末尾に「-wsl」が追加されるはずです。もしうまく行かない場合は、PowerShell や cmd.exeの画面で、コマンドwsl -d Ubuntu-20.04 -- /usr/bin/genie -i
を実行してください。
今回は、新しいディストリビューションUbuntu20.04、Windows Terminal、サービスの起動方法について説明しました。次回は、サービスとサービスの制御方法について説明します。次回をお楽しみに。
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes