Перезавантаження Ubuntu в Windows без перезавантаження Windows?


76

Чи можливо перезавантажити підсистему Ubuntu без перезавантаження системи?

Я намагався використовувати shutdownкоманду після встановлення деяких оновлень, але це, здається, не є тут варіантом.

Bash на Windows.  Перезавантаження потрібно.  shutdown: Не вдається відключити систему

Відповіді:


101

Вимкніть все: Build 18917+

wsl --shutdown

Скасувати конкретний дистрибутив: Windows 1903+

wsl -t <DistroName>

Старіші версії

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

введіть тут опис зображення


чому netзамість цього sc, як у відповіді @ llinfeng
Гая

netпрацював у cmd (з адміном). Щойно перевірив, що мій bat-файл scне працював у Windows OS Build 1809.
llinfeng

31

Оскільки Windows 10 версії 1803, закриття всіх вікон терміналів WSL не знищує фонові процеси за замовчуванням, якщо файл /var/run/reboot-requiredне присутній. Цей файл буде автоматично створений apt в Ubuntu, коли для оновлення потрібна перезавантаження, але якщо ви хочете вручну перезавантажити підсистему, ви можете створити файл самостійно:

sudo touch /var/run/reboot-required

Я не перевіряв цього на інших дистрибутивах, доступних у магазині Microsoft. Альтернативне рішення - вбити всі процеси самостійно:

sudo killall -r '.*'

Чи знаєте ви, що я можу зробити необхідну перезавантаження? Я хочу перевірити відповідь, щоб я міг її прийняти.
Луї

1
Це працювало для мене. Мені довелося sudo:sudo killall -r '.*'
F21

@Louis Я бачу, що ти вже прийняв це, але ти можеш зробити sudo touch /var/run/reboot-required. Насправді, схоже, наявність файлу змушує WSL знищити всі фонові процеси та вимкнути підсистему, коли всі вікна терміналу закриті, тож ви також можете зловживати цим.
nyuszika7h

1
killallпрекрасно працював для мене. Не потрібно було чіпати reboot-required.
Джованні Бассі

23

У адміністративному запиті PowerShell: Restart-Service LxssManager


11
@RajeshS Це може бути коротко, але це відповідає на питання.
nyuszika7h

Мені це подобається. Легко запам’ятати, автоматичне завершення роботи з вкладкою досить добре. Забавно бачити, як добре Windows спочатку знизила свою сервісну модель.
Луї

2
Я просто отримую це неодноразовоWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Кріс Сноу

Це прекрасно працює. Просто спершу запустіть свою повноваження з прав адміністратора.
Ерік Калькокен

10

Просто вийти з оболонки exitта повторне відкриття, здається, робить свою справу.

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:~$

5
Це вже не працює.
Дакарон

@Dakkaron - Це було під час подання запитання.
Рамхаунд

1
Ось чому я сказав «більше». Інформація про те, що ця публікація застаріла, є важливою, тому іншим людям, у яких зараз є проблема, не потрібно пробувати її, щоб дізнатися, що вона не працює. Я не впевнений, як тут вирішуються справи, але на Stackoverflow відповідь повинна допомогти не лише людині, яка поставила питання, а й усім, хто шукає рішення тієї ж проблеми.
Даккарон

Зокрема, з цього часу це не працює Windows 10 Build 17046. @Луїс Ви б не хотіли відредагувати це у своїй відповіді?
Даккарон

Для мене працює над збіркою 17134.
Ian Kemp

7

Просто відкрийте вікно cmd як адміністратор і запустіть ці команди, щоб перезапустити його.

net stop LxssManager
net start LxssManager

1
Додайте кілька секунд між цими двома командами. наприклад timeout /t 3команда (додайте 3 секунди).
Бісвапріо

2
Це дублює відповідь Самдда з серпня.
fixer1234

Не працює ... залишається у статусі "зупинки". коли я намагаюся запустити його знову, я отримую "Служба починається чи припиняється. Будь ласка, спробуйте ще пізніше." ... ніколи не закінчується. Завжди зависає після запуску команди rsync з партії типу "bash -c" rsync .... "". Це кошмар.
озброєння

"Служба LxssManager зупиняється ............................................ ............................. Службу LxssManager не вдалося зупинити. " : - /
Алекс Янсен

4

Я створив *.batфайл, і запустивши його, перезавантаження виконується протягом 10 секунд. (Я вражений тим, як швидко перезавантажуються речі. І, будь ласка, порадьте, чи мій підхід у довгостроковій перспективі спричинить серйозні проблеми.)

Помістіть у WSL_reboot.batфайл наступні два рядки та запустіть його щоразу, коли вам потрібно перезавантажити WSL в Windows 10.

net stop LxssManager
net start LxssManager 

Примітка щодо оновлення : за моїм останнім "оновленням" ОС Windows, збірка 1809 більше не любить scкоманди.

Побічна примітка: потрібно перезавантажити "ядро" WSL, коли він / вона форматує диск з літерними ознаками через Провідник Windows. Однак не зовсім вирішили побічний продукт, де lsкоманда отримає таку помилку. Пов’язаний пост-від-WSL @ Github ; Пов’язані повідомлення після публікації . Перерве посилання, якщо мені вдасться вирішити помилку побічних продуктів.

ls: 'System Volume Information': Permission denied
...
d--x--x--x 1 llinfeng llinfeng       512 Jan 15 11:00 'System Volume Information'/
...

чому scзамість цього net, як у відповіді @ samdd
Гая

1
Я думаю, netв той час не працював з моїм Windows 10? scмабуть, тоді працювали. Я повинен був вказати номер збірки Windows.
llinfeng
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.