Czy można zrestartować podsystem Ubuntu bez ponownego uruchamiania systemu?
Próbowałem użyć shutdown
polecenia po zainstalowaniu niektórych aktualizacji, ale nie wydaje się, aby była to tutaj opcja.
Czy można zrestartować podsystem Ubuntu bez ponownego uruchamiania systemu?
Próbowałem użyć shutdown
polecenia po zainstalowaniu niektórych aktualizacji, ale nie wydaje się, aby była to tutaj opcja.
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
zamiastsc
, jak w odpowiedzi @ llinfenganet
pracował w cmd (z adminem). Właśnie przetestowałem, że mój plik nietoperzasc
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:Nie testowałem tego w innych dystrybucjach dostępnych w sklepie Microsoft Store. Alternatywnym rozwiązaniem jest samodzielne zabicie wszystkich procesów:
źródło
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
źródło
WARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
exit
Wydaje się, że wystarczy wyjść z muszli i ponownie otworzyć.źródło
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ć.
źródło
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.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.źródło
sc
zamiastnet
, jak w odpowiedzi @ samddnet
wtedy nie działał mój Windows 10?sc
musiał wtedy pracować. Powinienem był podać numer kompilacji systemu Windows.