WSL2(Ubuntu22.04)でsystemdをPID=1で起動する

WSL2(Ubuntu22.04)でsystemdをPID=1で起動する

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

PID=1でsystemdを起動します。

WSL2ではPID=1はsystemdとなっていません。

$ps -ae
PID TTY TIME CMD
1 ? 00:00:00 init(Ubuntu-22.
4 ? 00:00:00 init
...

/etc/wsl.confを設定します。

wsl.conf

/etc/wsl.confを作成します。

$ touch /etc/wsl.conf
$ vi /etc/wsl.conf

中身を以下の通りにします。

[boot]
systemd=true

WSL2再起動

WSL2を再起動します。

C:\>wsl --shutdown
C:\>wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-22.04           Stopped         2

シャットダウンしたらWindows TerminalなどからWSL2を起動するだけです。

$ps -ae
PID TTY TIME CMD
1 ? 00:00:01 systemd
2 ? 00:00:00 init-systemd(Ub
...

PID=1でsystemdが起動されました。

参考サイト

Systemd support is now available in WSL!
Systemd support is now available in WSL! The Windows Subsystem for Linux (WSL) can now run systemd inside of your WSL di...

コメント

タイトルとURLをコピーしました