タイトル通りですが、WSL2 Ubutnu20.04でsystemdを有効化する方法を紹介します。
WSLではsystemdが対応されているのですが、デフォルトでは有効化されていないので、/etc/wsl.conf
ファイルを編集して有効化します。
https://crieit.net/posts/systemd-supported-in-wsl
現在のsystemd状況を確認
WSLを起動して、systemctl
コマンドを実行してみてください。下記のような出力が得られた場合は有効化されていません。
$ systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
/etc/wsl.confファイルを編集
/etc/wsl.confファイルに、systemd有効化の設定を追加します。
$ sudo vim /etc/wsl.conf
[boot]
systemd=true
設定を追加したら、Windows側でPowerShellを開いて、wslを一度シャットダウンします。
PS> wsl --shutdown
systemdの状況を確認
改めてsystemctl
コマンドをUbuntu上で実行してみます。下記のような結果が得られれば、systemdは正常に有効化されています。
$ systemctl
UNIT >
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-33e415ed\x2d8266\x2d4e56\x2d8089\x2d579e8b101577-pci8266:00->
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-33e415ed\x2d8266\x2d4e56\x2d8089\x2d579e8b101577-pci8266:00->
sys-devices-platform-serial8250-tty-ttyS0.device
....