はじめに
Windows 11では22H2を適用してWSLもアップデートすればSystemdに対応したWSLになります。
以前にもSystemdに対応したことを書きました。
-
WSLでsystemdのPID=1に対応したらしいので試してみた - 技術的な何か。
はじめに WSLでsystemdをPID=1に対応しました。非常にうれしいニュースです。 現状はWindows 11かWindows 10 Insider Programのみです。ビルドのバージョンは
level69.net
ここではSystemd PID=1と記載していますが、最新ではどうやらPID=1にはならないようです。
これを確認していきます。
Windows 11
WSL(アップデート後)
wsl --version WSL バージョン: 0.70.4.0 カーネル バージョン: 5.15.68.1 WSLg バージョン: 1.0.45 MSRDC バージョン: 1.2.3575 Direct3D バージョン: 1.606.4 DXCore バージョン: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp Windowsバージョン: 10.0.22621.755
Systemdの有効化
最初にWSLのアップデートを行っておく必要があります。
Powershellなどでアップデートします。
wsl.exe --update
Systemdの有効化は対象のOSを起動後に/etc/wsl.conf
を編集します。
[boot] systemd=true
設定後はWSLを起動しなおします。
wsl.exe --shutdown
以上で設定は完了です。
プロセスの確認
PID=1にならないようです。
root@desktop1:~# ps -auxf USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.7 0.0 166248 11516 ? Ss 16:04 0:02 /sbin/init root 2 0.0 0.0 2268 1160 ? Sl 16:04 0:00 /init root 5 0.0 0.0 2268 4 ? Sl 16:04 0:00 \_ plan9 --control-socket 7 --log-level 4 --server-fd 8 --log-truncate root 461 0.0 0.0 2276 104 ? Ss 16:04 0:00 \_ /init root 462 0.0 0.0 2292 108 ? S 16:04 0:00 | \_ /init root 463 0.0 0.0 9104 5180 pts/1 Ss 16:04 0:00 | \_ -bash root 618 0.0 0.0 10884 3440 pts/1 R+ 16:09 0:00 | \_ ps -auxf root 464 0.0 0.0 7472 4864 pts/2 Ss 16:04 0:00 \_ /bin/login -f root 596 0.0 0.0 9076 5024 pts/2 S+ 16:04 0:00 \_ -bash root 59 0.1 0.0 31336 11604 ? S<s 16:04 0:00 /lib/systemd/systemd-journald root 87 0.1 0.0 22732 6548 ? Ss 16:04 0:00 /lib/systemd/systemd-udevd root 97 0.1 0.0 4740 1764 ? Ss 16:04 0:00 snapfuse /var/lib/snapd/snaps/core20_1623.snap /snap/core20/1623 -o ro,nodev,allow_other,suid root 98 0.0 0.0 4680 1708 ? Ss 16:04 0:00 snapfuse /var/lib/snapd/snaps/lxd_23541.snap /snap/lxd/23541 -o ro,nodev,allow_other,suid root 100 0.0 0.0 4620 1480 ? Ss 16:04 0:00 snapfuse /var/lib/snapd/snaps/snapd_16778.snap /snap/snapd/16778 -o ro,nodev,allow_other,suid systemd+ 139 0.1 0.0 16112 7860 ? Ss 16:04 0:00 /lib/systemd/systemd-networkd message+ 140 0.0 0.0 8752 4520 ? Ss 16:04 0:00 @dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only root 143 0.0 0.1 32980 18652 ? Ss 16:04 0:00 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers root 147 0.0 0.0 234480 8640 ? Ssl 16:04 0:00 /usr/libexec/polkitd --no-debug syslog 155 0.0 0.0 222396 7272 ? Ssl 16:04 0:00 /usr/sbin/rsyslogd -n -iNONE root 157 0.1 0.2 1687792 40892 ? Ssl 16:04 0:00 /usr/lib/snapd/snapd root 163 0.1 0.0 15328 7412 ? Ss 16:04 0:00 /lib/systemd/systemd-logind root 171 0.0 0.0 392632 14516 ? Ssl 16:04 0:00 /usr/libexec/udisks2/udisksd root 265 0.0 0.0 243196 13368 ? Ssl 16:04 0:00 /usr/sbin/ModemManager systemd+ 314 0.1 0.0 25256 12312 ? Ss 16:04 0:00 /lib/systemd/systemd-resolved root 361 0.0 0.0 7280 2684 ? Ss 16:04 0:00 /usr/sbin/cron -f -P root 372 0.0 0.1 110092 21248 ? Ssl 16:04 0:00 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal root 377 0.0 0.0 6212 1128 pts/0 Ss+ 16:04 0:00 /sbin/agetty -o -p -- \u --noclear --keep-baud console 115200,38400,9600 vt220 root 379 0.0 0.0 6168 1112 tty1 Ss+ 16:04 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux root 617 0.5 0.0 14684 6268 ? Ss 16:09 0:00 /lib/systemd/systemd-timedated
試しにDockerをインストールしてみます。Systemdで動作していることが分かります。
root@desktop1:~# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-11-08 17:10:14 JST; 47s ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 435 (dockerd) Tasks: 12 Memory: 93.2M CGroup: /system.slice/docker.service └─435 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock