Reinicializando o Ubuntu no Windows sem reiniciar o Windows?

Reinicializando o Ubuntu no Windows sem reiniciar o Windows?

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

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

WSL. Reinicialização necessária. Não é possível desligar o sistema

O texto da captura de tela:

~$ bin/rcheck.sh
Reboot required.
~$ sudo shutdown -r now
shutdown: Unable to shutdown system

Responder1

Você não pode reiniciar uma distribuição com um único comando. Você deve desligar e inicializar a distro com dois comandos. Se você correrwsl.exeem vez de wsl, então funciona tanto no WSL Bash quanto no CMD.

Veja a lista de distros e seu estado atual:

wsl.exe -l -v

Desligue tudo: Build 18917+

wsl.exe --shutdown

Encerre uma distribuição específica: Windows 1903+

wsl.exe -t <DistroName>

Inicialize a distribuição padrão (marcada com *):

wsl.exe

Inicialize uma distribuição específica:

wsl.exe -d <DistroName>

versões mais antigas

# PowerShell (admin)
Restart-Service LxssManager

# or CMD (admin)
net stop LxssManager
net start LxssManager

insira a descrição da imagem aqui

Responder2

Em um prompt administrativo do PowerShell:Restart-Service LxssManager

Responder3

Desde o Windows 10 versão 1803, fechar todas as janelas do terminal WSL não eliminará os 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 quiser reinicializar manualmente o subsistema, você mesmo pode criar o arquivo:

sudo touch /var/run/reboot-required

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

sudo killall -r '.*'

Responder4

O seguinte permite um desligamento no WSL2 usando o comando wslreboot(ou qualquer comando personalizado).

Tecnicamente, wslshutdownseria mais apropriado para o código abaixo:

Criar alias:

sudo nano ~/.bash_aliases

Adicionar linha:

alias wslreboot='history -a && cmd.exe /C wsl --shutdown'

history -agarante que o histórico do comando bash seja salvo antes do desligamento.

Habilitar Alias:

Reinicie o WSL

cmd.exe /C wsl --shutdown

ou digite

source .bash_aliases

Usar

agora você pode digitar

wslreboot  

Desligar


Estou pensando que você poderia usar uma variação do acima para executar um arquivo em lote com as linhas:

wsl --shutdown
wsl

para uma reinicialização adequada.

informação relacionada