Reiniciando o Ubuntu no Windows sem reiniciar o Windows?


76

É possível reiniciar o subsistema Ubuntu sem reiniciar o sistema?

Tentei usar o shutdowncomando após instalar algumas atualizações, mas isso não parece ser uma opção aqui.

Bash no Windows.  É necessário reiniciar.  shutdown: Não foi possível desligar o sistema

Respostas:


101

Desligar tudo: Build 18917+

wsl --shutdown

Encerrar distribuição específica: Windows 1903+

wsl -t <DistroName>

versões mais antigas

# PowerShell (admin)
Restart-Service LxssManager

# CMD (admin)
net stop LxssManager
net start LxssManager

insira a descrição da imagem aqui


por que em netvez de sc, como na resposta de @ llinfeng
Gaia

nettrabalhou em cmd (com admin). Acabei de testar que meu arquivo bat scnão funcionava no Windows OS Build 1809.
llinfeng 15/01

31

Desde o Windows 10 versão 1803, fechar todas as janelas do terminal WSL não mata processos em segundo plano por padrão, a menos que o arquivo /var/run/reboot-requiredesteja presente. Este arquivo será criado automaticamente pelo apt no Ubuntu quando uma atualização exigir uma reinicialização, mas se você deseja reiniciar manualmente o subsistema, poderá criar o arquivo você mesmo:

sudo touch /var/run/reboot-required

Não testei isso em outras distribuições disponíveis na Microsoft Store. Uma solução alternativa é matar todos os processos:

sudo killall -r '.*'

Você sabe o que posso fazer para forçar uma reinicialização necessária? Quero testar a resposta para poder aceitá-la.
Louis

1
Isso funcionou para mim. Eu tive que sudo:sudo killall -r '.*'
F21 20/06

@ Louis Eu vejo que você já aceitou, mas você pode fazer sudo touch /var/run/reboot-required. De fato, parece que a presença do arquivo faz com que o WSL elimine todos os processos em segundo plano e desligue o subsistema quando todas as janelas do terminal estiverem fechadas, para que você possa abusar também.
nyuszika7h

1
killallfuncionou perfeitamente para mim. Não precisava tocar reboot-required.
Giovanni Bassi

23

Em um prompt administrativo do PowerShell: Restart-Service LxssManager


11
@RajeshS Pode ser curto, mas responde à pergunta.
nyuszika7h

Eu gosto disso. Fácil de lembrar, o preenchimento automático com a guia é suficiente. Divertido ver quão bem o Windows conseguiu seu modelo de serviço desde o início.
Louis

2
Eu só entendo isso repetidamenteWARNING: Waiting for service 'LxssManager (LxssManager)' to stop...
Chris Snow

Isso funciona perfeitamente. Basta iniciar seu PowerShell com direitos de administrador primeiro.
Erik Kalkoken

10

Simplesmente sair do shell exite reabrir parece fazer o truque.

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
Isso não funciona mais.
Dakkaron

@ Dakarkaron - Foi quando a pergunta foi enviada.
Ramhound 23/10

1
Por isso eu disse "mais". As informações de que esta postagem está desatualizada são importantes, portanto outras pessoas que têm o problema no momento não precisam tentar descobrir que ela não funciona. Não tenho certeza de como as coisas são tratadas aqui, mas no Stackoverflow uma resposta não deve apenas ajudar a pessoa que fez a pergunta, mas também todas as outras que estão procurando soluções para o mesmo problema.
Dakkaron

Especificamente, não funciona desde então Windows 10 Build 17046. @ Louis você se importaria de editar isso em sua resposta?
Dakkaron 23/10

Funciona para mim em construção 17134.
Ian Kemp

7

Basta abrir uma janela do cmd como administrador e executar esses comandos para reiniciá-la.

net stop LxssManager
net start LxssManager

1
Adicione alguns segundos entre esses dois comandos. por exemplo, timeout /t 3comando (adicione 3 segundos).
precisa saber é o seguinte

2
Isso duplica a resposta do samdd de agosto.
fixer1234

Não funciona ... permanece no status "parando". quando tento executá-lo novamente, recebo "O serviço está iniciando ou parando. Por favor, tente novamente mais tarde." ... nunca termina. Sempre trava depois que eu executo um comando rsync do lote como "bash -c 'rsync ....'". Isso é um pesadelo.
gunslingor

"O serviço LxssManager está parando ............................................ ............................. O serviço LxssManager não pôde ser parado. " : - /
Alex Jansen

4

Eu criei um *.batarquivo e, ao executá-lo, é reiniciado em 10 segundos. (Estou impressionado com a rapidez com que as coisas são recarregadas. E, por favor, informe se minha abordagem causará sérios problemas a longo prazo.)

Coloque as duas linhas a seguir em um WSL_reboot.batarquivo e execute-o sempre que precisar reiniciar o WSL no Windows 10.

net stop LxssManager
net start LxssManager 

Nota da atualização : de acordo com minha recente "atualização" do sistema operacional Windows, o Build 1809 não gosta scmais do comando.

Nota lateral: é necessário reiniciar o "kernel" da WSL quando ele / ela formata uma unidade com letras no Windows Explorer. No entanto, ainda não resolvemos o subproduto, onde o lscomando obterá o seguinte erro. Post relacionado a partir da WSL @ Github ; Post relacionado da pilha . Largarei um link se eu conseguir resolver o bug do subproduto.

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

por que em scvez de net, como na resposta de @ samdd
Gaia

1
Eu acho que netnão estava funcionando com o meu Windows 10 na época? scdeve ter funcionado naquela época. Eu deveria ter especificado o número da compilação do Windows.
llinfeng
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.