🐈

WSL2上のUbuntuでsystemctlのコマンドが打てなくて困った話

2023/03/03に公開

とある必要があって

sudo systemctl restart docker

を実行しようとしたら、

System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

と出て困った時の話。

WSLのバージョンが古い

どうやら古いバージョンのWSLだとsystemctlを含むコマンドを実行できないらしい。
なので、 power shellでwsl --updateを実行して更新する。

WSL内で有効化する必要がある

WSL内で/etc/wsl.confを作成し、

[boot]
systemd=true

と記述する事で有効化できる

ぼやき

後者の方法で有効化する方法は検索したらすぐ出たが、私の環境だとsystemctlが実行されなかった。その後調べている中で前者の原因が出てきた。解決にくっそ時間かかったのでここに残す

Discussion