Antworten:
Alles herunterfahren: Build 18917+
wsl --shutdown
Bestimmte Distribution beenden: Windows 1903+
wsl -t <DistroName>
# PowerShell (admin)
Restart-Service LxssManager
# CMD (admin)
net stop LxssManager
net start LxssManager
net
arbeitete in cmd (mit admin). sc
Seit Windows 10, Version 1803, werden beim Schließen aller WSL-Terminalfenster standardmäßig keine Hintergrundprozesse abgebrochen, es sei denn, die Datei /var/run/reboot-required
ist vorhanden. Diese Datei wird von apt unter Ubuntu automatisch erstellt, wenn ein Update einen Neustart erfordert. Wenn Sie das Subsystem jedoch manuell neu starten möchten, können Sie die Datei selbst erstellen:
sudo touch /var/run/reboot-required
Ich habe dies nicht mit anderen im Microsoft Store verfügbaren Distributionen getestet. Eine alternative Lösung besteht darin, alle Prozesse selbst zu beenden:
sudo killall -r '.*'
sudo
:sudo killall -r '.*'
sudo touch /var/run/reboot-required
. Tatsächlich scheint das Vorhandensein der Datei dazu zu führen, dass WSL alle Hintergrundprozesse abbricht und das Subsystem herunterfährt, wenn alle Terminalfenster geschlossen sind, sodass Sie dies ebenfalls missbrauchen können.
killall
funktionierte perfekt für mich. Musste nicht anfassen reboot-required
.
Bei einer administrativen PowerShell-Eingabeaufforderung: Restart-Service LxssManager
WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Das Verlassen der Shell mit exit
und das erneute Öffnen scheinen den Trick zu tun.
Louis@ATHENA:~$ bin/rcheck.sh
Reboot not necessary.
Louis@ATHENA:~$ bin/update.sh
[sudo] password for Louis:
The following packages will be upgraded:
libssl1.0.0 openssl
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libssl1.0.0 amd64 1.0.1f-1ubuntu2.21 [830 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main openssl amd64 1.0.1f-1ubuntu2.21 [489 kB]
Setting up libssl1.0.0:amd64 (1.0.1f-1ubuntu2.21) ...
Setting up openssl (1.0.1f-1ubuntu2.21) ...
Del libssl1.0.0 1.0.1f-1ubuntu2.20 [830 kB]
Del openssl 1.0.1f-1ubuntu2.20 [489 kB]
Louis@ATHENA:~$ bin/rcheck.sh
Reboot required.
Louis@ATHENA:~$ exec bash -l
Louis@ATHENA:~$ bin/rcheck.sh
Reboot required.
Louis@ATHENA:~$ exit
Louis@ATHENA:~$ bin/rcheck.sh
Reboot not necessary.
Louis@ATHENA:~$
Windows 10 Build 17046
. @ Louis Würde es Ihnen etwas ausmachen, dies in Ihre Antwort einzufügen?
Öffnen Sie einfach ein Cmd-Fenster als Administrator und führen Sie diese Befehle aus, um es neu zu starten.
net stop LxssManager
net start LxssManager
timeout /t 3
Befehl (3 Sekunden hinzufügen).
Ich habe eine *.bat
Datei erstellt, die ausgeführt wird und den Neustart innerhalb von 10 Sekunden durchführt. (Ich bin erstaunt, wie schnell die Dinge nachgeladen werden. Und bitte raten Sie mir, ob meine Vorgehensweise auf lange Sicht ernsthafte Probleme verursachen wird.)
Fügen Sie die folgenden zwei Zeilen in eine WSL_reboot.bat
Datei ein und führen Sie sie jedes Mal aus, wenn Sie die WSL unter Windows 10 neu starten müssen.
net stop LxssManager
net start LxssManager
Hinweis zum Update : Nach meinem letzten "Upgrade" des Windows-Betriebssystems gefällt der sc
Befehl "Build 1809" nicht mehr.
Randnotiz: Man muss den WSL "Kernel" neu starten, wenn man ein beschriftetes Laufwerk über den Windows Explorer formatiert. Das Nebenprodukt ist jedoch noch nicht vollständig gelöst, da der ls
Befehl den folgenden Fehler ausgibt. Related-post-from-WSL @ Github ; Related-post-from-the-Stack . Lässt einen Link fallen, wenn es mir gelingt, den Nebenproduktfehler zu beheben.
ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng 512 Jan 15 11:00 'System Volume Information'/
...
sc
anstatt net
, wie in @ samdd's answer
net
Zeitpunkt nicht mit Windows 10 gearbeitet habe. sc
muss damals geklappt haben. Ich hätte die Windows Build Nummer angeben sollen.
net
anstattsc
, wie in @ llinfengs Antwort