ルートとして systemctl の peer によって接続がリセットされました

ルートとして systemctl の peer によって接続がリセットされました

WSL 2 (Ubuntu) をセットアップし、そこに systemd (および systemd-sysv) をインストールしました。その後、次を実行しました:

sudo mkdir -p /run/dbus
sudo dbus-daemon --system
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target

インストールする前にsystemd、Ubuntuを18.10にアップデートしました(sudo do-release-upgrade複数回使用)

しばらくは機能していましたが、今では一般ユーザーとしてしか機能しません。ルートとして、

Failed to list units: Connection reset by peer

任意のコマンドでsystemctl

このため、たとえば、サービスのステータスを確認することはできますが、このサービスの起動を有効/無効にしたり、サービスを開始/停止したりすることはできません。

クリーン インストールでも再現できます。

Microsoft StoreからDebian (WSL2)をインストールしました

次のコマンドを実行しました: sudo apt-get update -y sudo apt-get install -y dbus-x11 sudo apt-get install daemonize

次に、wsl --shutdownホスト上で実行します:

sudo mkdir -p /run/dbus
sudo dbus-daemon --system
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target

その後、同じ結果になりました。

systemctl

ユニットロードアクティブサブ説明

proc-sys-fs-binfmt_misc.automount がロードされ、アクティブに実行中の任意の実行可能ファイル

sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fc785225\x2d9131\x2d5661\x2dac0c\x2d3a157c61ae15-net-eth0.device がロードされ、アクティブになり、/sys/devices/LNXSYSTM:00/ に接続されました

sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\x2dce7c\x2d535c\x2d966b\x2deb5f811c95f0-host0-target0:0:0-0:0:0:0-block-sda.device がロードされ、アクティブで、Virtual_Disk が接続されました sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fd1d2cbd\x2dce7c\x2d535c\x2d966b\x2deb5f811c95f0-host0-target0:0:0-0:0:0:1-block-sdb.device がロードされ、アクティブで、Virtual_Disk が接続されました

などなどですが、走ったときに

sudo systemctl

私は

ユニットの一覧表示に失敗しました: ピアによって接続がリセットされました

その他の例:

$ systemctl status dbus
● dbus.service - D-Bus System Message Bus
   Loaded: loaded (/lib/systemd/system/dbus.service; static; vendor preset: enabled)
   Active: active (running) since Fri 2019-12-13 17:56:36 CET; 13min ago
     Docs: man:dbus-daemon(1)
 Main PID: 110
    Tasks: 1 (limit: 4915)
   Memory: 1.2M
   CGroup: /system.slice/dbus.service
           └─110 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only

Dec 13 17:56:36 Daniellaptop systemd[1]: Started D-Bus System Message Bus.
$ sudo systemctl status dbus
Failed to get properties: Connection reset by peer

[仕様]

ver私のホスト上の出力:Microsoft Windows [Version 10.0.19013.1122]

その後、neofetchDebian システムにもインストールしました (見せるため):

       _,met$$$$$gg.          dan@Daniellaptop
    ,g$$$$$$$$$$$$$$$P.       ----------------
  ,g$$P"     """Y$$.".        OS: Debian GNU/Linux 10 (buster) on Windows 10 x86_64
 ,$$P'              `$$$.     Kernel: 4.19.79-microsoft-standard
',$$P       ,ggs.     `$$b:   Uptime: 9 mins
`d$$'     ,$P"'   .    $$$    Packages: 226 (dpkg)
 $$P      d$'     ,    $$P    Shell: bash 5.0.3
 $$:      $$.   -    ,d$$'    Terminal: /dev/pts/0
 $$;      Y$b._   _,d$P'      CPU: Intel i7-7500U (4) @ 2.903GHz
 Y$$.    `.`"Y$$$$P"'         Memory: 80MiB / 6868MiB
 `$$b      "-.__
  `Y$$
   `Y$$.
     `$$b.
       `Y$$b.
          `"Y$b._
              `"""

出力uname -a:

Linux <hostname of the host> 4.19.79-microsoft-standard #1 SMP Mon Oct 14 00:50:46 UTC 2019 x86_64 GNU/Linux

[注記]

システムを起動して実行しても同じ結果になります

sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target

それなし

sudo mkdir -p /run/dbus
sudo dbus-daemon --system

答え1

systemdこれは、説明されているように別の方法でインストールすることで可能ですここまず、 をインストールしgit、このリポジトリをクローンして、 の説明に従ってインストーラーを実行する必要がありますREADME.md

sudo apt update
sudo apt install -y git
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh

その後、wsl --shutdowncmd を実行して WSL を再度起動します。

関連情報