A instância do WSL ainda é desligada automaticamente quando todos os terminais do WSL são fechados
O uso do WSL é muito prático, mas ele tem um comportamento que pode ser um pouco incômodo: ele desliga automaticamente quando não está sendo usado. Isso é bom para economizar recursos, mas pode ser um pouco chato quando você precisa acessar o WSL e ele está desligado, você pode verificar se o WSL está ativo com o comando:
wsl -l -v
Aparentemente a Microsoft não resolveu esse problema e isso é alvo de inúmeras discussões sobre como contornar esse problema. As soluções vão desde tentar configurações que não funcionam até a criação de scripts com loop infinito para manter o WSL ativo. A solução proposta por firejox
, disponível em [https://github.com/microsoft/WSL/issues/8854#issuecomment-1490454734] é a mais simples e eficiente que encontrei.
A solução fornecida é gerar o processo do Windows em suspensão no serviço systemd
usando o comando interno do Windows waitfor
para manter a distribuição viva.
[Unit]
Description=Keep Distro Alive
[Service]
ExecStart=/mnt/c/Windows/System32/waitfor.exe MakeDistroAlive
[Install]
WantedBy=multi-user.target
O arquivo de serviço deve ser salvo em /etc/systemd/system/keep-distro-alive.service
.
Para iniciar o serviço, use o comando:
sudo systemctl start keep-distro-alive.service
Para ativar o serviço na inicialização, use o comando:
sudo systemctl enable keep-distro-alive.service