Odpowiedzi:
Zamknij wszystko: Build 18917+
wsl --shutdown
Zakończ określoną dystrybucję: Windows 1903+
wsl -t <DistroName>
# PowerShell (admin)
Restart-Service LxssManager
# CMD (admin)
net stop LxssManager
net start LxssManager
net
pracował w cmd (z adminem). Właśnie przetestowałem, że mój plik nietoperza sc
nie działa w kompilacji systemu operacyjnego Windows 1809.
Od wersji Windows 10 1803 zamknięcie wszystkich okien terminala WSL domyślnie nie zabija procesów w tle, chyba że plik /var/run/reboot-required
jest obecny. Ten plik zostanie automatycznie utworzony przez apt na Ubuntu, gdy aktualizacja wymaga ponownego uruchomienia, ale jeśli chcesz ręcznie zrestartować podsystem, możesz sam utworzyć plik:
sudo touch /var/run/reboot-required
Nie testowałem tego w innych dystrybucjach dostępnych w sklepie Microsoft Store. Alternatywnym rozwiązaniem jest samodzielne zabicie wszystkich procesów:
sudo killall -r '.*'
sudo
:sudo killall -r '.*'
sudo touch /var/run/reboot-required
. W rzeczywistości wydaje się, że obecność pliku powoduje, że WSL zabija wszystkie procesy w tle i zamyka podsystem, gdy wszystkie okna terminali są zamknięte, więc można to również nadużyć.
killall
działało idealnie dla mnie. Nie musiałem dotykać reboot-required
.
Po administracyjnym monitie programu PowerShell: Restart-Service LxssManager
WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
exit
Wydaje się, że wystarczy wyjść z muszli i ponownie otworzyć.
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, czy mógłbyś edytować to w swojej odpowiedzi?
Wystarczy otworzyć okno cmd jako administrator i uruchomić te polecenia, aby je ponownie uruchomić.
net stop LxssManager
net start LxssManager
timeout /t 3
polecenie (dodaj 3 sekundy).
Utworzyłem *.bat
plik i jego uruchomienie powoduje ponowne uruchomienie w ciągu 10 sekund. (Jestem zdumiony, jak szybko wszystko się ładuje. I proszę doradzić, czy moje podejście spowoduje poważne kłopoty na dłuższą metę.)
Umieść następujące dwa wiersze w WSL_reboot.bat
pliku i uruchom go za każdym razem, gdy musisz ponownie uruchomić WSL w systemie Windows 10.
net stop LxssManager
net start LxssManager
Uwaga dotycząca aktualizacji : zgodnie z moim ostatnim „uaktualnieniem” systemu operacyjnego Windows kompilacja 1809 nie lubi sc
już polecenia.
Uwaga dodatkowa: należy ponownie uruchomić „jądro” WSL, gdy formatuje dysk z literami za pomocą Eksploratora Windows. Nie do końca rozwiązałem jednak produkt uboczny, w którym ls
polecenie otrzyma następujący błąd. Podobne-post-from-WSL @ Github ; Powiązany post ze stosu . Upuści link, jeśli uda mi się rozwiązać błąd produktu ubocznego.
ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng 512 Jan 15 11:00 'System Volume Information'/
...
sc
zamiast net
, jak w odpowiedzi @ samdd
net
wtedy nie działał mój Windows 10? sc
musiał wtedy pracować. Powinienem był podać numer kompilacji systemu Windows.
net
zamiastsc
, jak w odpowiedzi @ llinfenga