Ich habe WSL 2 (Ubuntu) eingerichtet und dort systemd (und systemd-sysv) installiert. Danach habe ich Folgendes ausgeführt:
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
Vor der Installation systemd
habe ich Ubuntu auf 18.10 aktualisiert ( sudo do-release-upgrade
mehrmals verwendet).
Es hat eine Weile funktioniert, aber jetzt funktioniert es nur noch als normaler Benutzer. Als Root habe ich
Failed to list units: Connection reset by peer
auf jeden systemctl
Befehl.
Aus diesem Grund kann ich beispielsweise den Status von Diensten überprüfen, aber ich kann den Start dieser Dienste nicht aktivieren/deaktivieren oder sie starten/stoppen.
Ich könnte es auch bei einer Neuinstallation reproduzieren:
Ich habe Debian (WSL2) aus dem Microsoft Store installiert
Ich habe die folgenden Befehle ausgeführt: sudo apt-get update -y sudo apt-get install -y dbus-x11 sudo apt-get install daemonize
Anschließend habe ich es wsl --shutdown
auf dem Host ausgeführt und Folgendes ausgeführt:
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
Danach hatte ich die gleichen Ergebnisse:
systemctl
EINHEIT LAST AKTIV SUB BESCHREIBUNG
proc-sys-fs-binfmt_misc.automount geladen aktiv ausgeführt beliebige ausführbare Datei
sys-devices-LNXSYSTM:00-LNXSYBUS:00-ACPI0004:00-VMBUS:00-fc785225\x2d9131\x2d5661\x2dac0c\x2d3a157c61ae15-net-eth0.device geladen aktiv eingesteckt /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 geladen aktiv angeschlossen 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 geladen aktiv angeschlossen Virtual_Disk
und so weiter, aber als ich rannte
sudo systemctl
ich habe
Auflisten der Einheiten fehlgeschlagen: Verbindung vom Peer zurückgesetzt
Anderes Beispiel:
$ 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
[Spezifikationen]
Ausgabe ver
auf meinem Host:Microsoft Windows [Version 10.0.19013.1122]
Danach habe ich auch neofetch
auf dem Debian-System installiert (um es Ihnen zu zeigen):
_,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._
`"""
Ausgabe von 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
[Notiz]
Dasselbe Ergebnis tritt auf, wenn ich das System starte und ausführe
sudo daemonize /usr/bin/unshare --fork --pid --mount-proc /lib/systemd/systemd --system-unit=basic.target
ohne
sudo mkdir -p /run/dbus
sudo dbus-daemon --system
Antwort1
Dies ist durch systemd
eine andere Installationsart möglich, wie beschriebenHier. Zuerst müssen Sie installieren git
, dieses Repository klonen und das Installationsprogramm wie im beschrieben ausführen 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
Danach führen Sie wsl --shutdown
cmd aus und starten WSL erneut.