Ubuntu no WSL: o comando de reinicialização não está funcionando
Eu tenho usado WSL
como um meio para obter acesso ao Linux ao desenvolver software dentro do Windows 10: Pro Ed OS. Mas algumas das minhas linhas de entrada pré-formatadas que eu uso não estão funcionando porque o reboot
comando não parece funcionar quando o Ubuntu está sendo executado no Windows Subsystem for Linux .
As linhas de entrada pré-formatadas que uso geralmente são executadas usando uma variável bash à qual atribuo a linha na linha de comando — ou seja $1
, $2
, ,$3
. Normalmente, eu crio uma biblioteca de linha de comando (também conhecida como CLI pessoal para navegação Linux), que executarei usando um comando suportado pelo diretório bin.
Aqui está um exemplo de um caso de uso tradicional:
jay-dev@stack-overflow:~$ sudo apt update && sudo apt upgrade;sudo reboot;
Ao executar o $ sudo reboot
comando , o Ubuntu imprime o seguinte:
jay-dev@stack-overflow:~$ sudo reboot
[sudo] password for andrew-chambers:
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down
Failed to talk to init daemon.
jay-dev@stack-overflow:~$
O que estou tentando descobrir é se existe uma solução viável.
Os marcadores a seguir são 3 exemplos de como uma solução viável pode ser:
Uma
WSL
configuração que permite que oreboot
comando seja executado com sucesso, o que significaria quereboot
, reinicializa o Ubuntu.Uma maneira alternativa de escrever o
reboot
comando, que fará com que ele seja executado de uma maneira que resultará na reinicialização do Ubuntu.Um comando alternativo completamente.
Uma maneira de escrever meu próprio comando que reiniciará o Ubuntu.
Fechar e abrir o terminal não funcionará, pois não posso incluir isso de maneira pré-formatada ou em qualquer tipo de código. (Isso deve ser óbvio)
Você pode reiniciar o Ubuntu usando o seguinte comando:
A ressalva é que você precisa do shell em execução com privilégios de administrador do Windows.
Outra maneira é
wsl.exe --shutdown
ouwsl.exe -t <DistroName>
. Tudo isso deve funcionar dentro do WSL.