WSLでsystemctlを実行したらエラーが表示されるのはPIDが原因です

Windows Subsystem for Linux
Sponsored Link

WSL上のLinuxでsystemctlができない

WSL上のLinuxで「systemctl」を使うと以下のエラーが表示される場合があります。

# systemctl start xxxxx
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: ホストが落ちています

これは「systemdがPID 1じゃないけど、ホスト落ちてない?」というエラーです。
WSL環境ではsystemdがPID 1じゃないことがあるので、落ちていると判断されてしまいます。

この問題は以下の「対処方法」で解決することができます。

対処方法

  1. /etc/wsl.confの作成

    # vi /etc/wsl.conf
    
    [boot]
    systemd=true
    
  2. WSLを再起動

    > wsl --shutdown
    

あとは改めてWSLコマンドで対象のLinuxの使用を開始しましょう。
systemctlコマンドが問題なく実行できるはずです。

コメント