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.