Até recentemente, a comunidade WSL vinha apresentando suas próprias soluções para adicionar suporte systemd às suas distros. Qualquer que seja sua posição pessoal sobre o systemd, para alguns processos é uma ferramenta crítica. Agora, porém, é oficialmente parte da WSL.
Eventualmente, será apenas uma coisa que está lá e você não terá que fazer muito com isso. Mas, da mesma forma, você pode não querer e precisa saber como desligá-lo.
Felizmente, o processo para habilitar e desabilitar manualmente o systemd no WSL é simples e envolve essencialmente as mesmas etapas.
O que é systemd?
Oficialmente, systemd é descrito como:
“O Systemd é um conjunto de blocos de construção básicos para um sistema Linux. Ele fornece um gerenciador de sistema e serviço que é executado como PID 1 e inicia o restante do sistema.”
Em um nível mais simples, é algo que você precisará se quiser acessar itens como pacotes instantâneos no Ubuntu. Na verdade, a Microsoft trabalhou com a Canonical para colocar o systemd em funcionamento no WSL.
Muitas distribuições Linux usam systemd quando você as executa em bare metal ou em uma máquina virtual. Adicioná-lo ao WSL é outra caixa marcada para tornar a experiência Linux no Windows da Microsoft mais próxima da realidade.
requisitos de sistema
Para ter acesso ao systemd, você precisará ter o WSL versão 0.67.6 e superior. Se você estiver usando a versão da Microsoft Store ou tiver configurado recentemente o WSL em sua máquina, já deve estar em uma compilação compatível.
Para verificar qual versão do WSL você instalou, abra o PowerShell e digite:
wsl --version
Se você precisar atualizar para uma versão compatível, poderá fazê-lo na mesma janela do PowerShell com o comando:
wsl --update
Por padrão, você obterá a versão mais recente da Microsoft Store, mas se preferir obtê-la no GitHub, poderá adicionar –web-download ao final do comando. O arquivo também está disponível para download manualmente no repositório do GitHub.
Os usuários do Ubuntu Preview no WSL devem ter o systemd disponível automaticamente.
Como habilitar e desabilitar o systemd no WSL
Ter acesso ao systemd é apenas a primeira parte, para usá-lo você deve habilitá-lo. Provavelmente haverá um momento em que já estará ativado por padrão, pois os fabricantes de distro agora podem fazer isso.
Mas, se o seu não estiver ativado, você precisará ativá-lo. E se você não quiser, talvez queira saber como desativá-lo. Toda a mágica é tratada no arquivo wsl.conf, que é, como sugere a extensão, um arquivo de configuração para suas distribuições WSL individuais. Você precisará fazer isso individualmente em todas as suas diferentes distros, atualmente, o systemd não pode ser ativado globalmente.
Na distribuição Linux escolhida, abra o arquivo wsl.conf com o seguinte comando:
sudo nano /etc/wsl.conf
Isso abrirá o editor de texto Nano e, a menos que você já tenha criado um arquivo de configuração, ele ficará completamente em branco. Para ativar o systemd, você precisará adicionar as seguintes instruções:
[boot]
systemd=true
Se você está tentando desativá-lo, pode definir isso como falso ou apenas remover a instrução completamente. Defini-lo como falso pelo menos torna um pouco mais conveniente reativar no futuro.
A partir daqui, salve o arquivo e saia (usando CTRL+O para salvar e CTRL+X para sair) e, em seguida, feche a guia Linux e retorne ao PowerShell. Para garantir que o systemd seja ativado, você precisará fazer um desligamento completo do WSL, aguardar pelo menos oito segundos e reiniciá-lo. Use este comando para desligar totalmente:
wsl.exe --shutdown
Após a espera de oito segundos, abra sua distribuição Linux novamente e o systemd agora deve estar ativado. A primeira inicialização pode demorar um pouco mais, mas quando estiver pronto, você pode verificar se o systemd está funcionando digitando este comando:
systemctl list-unit-files --type=service
Assumindo que tudo foi planejado, isso produzirá uma lista completa de todos os serviços em execução. Se o systemd não tiver sido ativado, você verá uma mensagem de erro.
Uma das razões mais óbvias para ter o systemd instalado, pelo menos no Ubuntu, é usar o snap para instalar pacotes. Depois que o systemd estiver ativado, você poderá instalar pacotes, como o Nextcloud, digitando:
sudo snap install nextcloud
Se você quiser saber o que está disponível através do snap, você pode navegar na biblioteca completa em snapcraft.io