.
O WSL usa o sistema init System V por padrão. Veja como você pode substituir isso pelo systemd para gerenciar serviços no WSL como um profissional.
O Windows Subsystem for Linux, ou WSL, é uma ótima maneira para desenvolvedores que precisam executar Linux e Windows fazerem isso sem precisar configurar uma máquina virtual ou inicialização dupla.
Um novo recurso importante é a capacidade de executar o systemd no WSL, que é útil para desenvolvedores da Web que configuram ambientes de teste localmente. Veja como ativá-lo e usá-lo.
Por que instalar o systemd no WSL?
Os serviços WSL por padrão executam o serviço init do System V mais antigo e os serviços são iniciados com o comando service. Em setembro de 2022, a Microsoft adicionou a opção de usar o systemd para gerenciar serviços. A maioria das principais distribuições Linux já mudou para systemd.
Apesar da controvérsia, em uso real, é muito mais simples iniciar e parar serviços com o systemd. Também é mais fácil acompanhar outros tutoriais do Linux, pois você não precisa alterar tanto os comandos.
Um ambiente de teste LAMP local estará mais próximo de um servidor Linux padrão, para que seu aplicativo seja mais fácil de depurar.
Como ativar o systemd no WSL
Para habilitar o systemd, você deve executar a versão correta do WSL. systemd requer WSL versão 0.67.6 ou superior. Você pode verificar o número da versão abrindo o PowerShell e digitando:
wsl
Se você tiver uma versão mais antiga instalada e desejar usar o systemd, poderá atualizar o WSL usando:
wsl
Agora você terá que configurar o systemd em qualquer distro que você instalou com o WSL. O processo é o mesmo em qualquer distribuição WSL, seja Ubuntu, Debian, Fedora ou qualquer outra coisa.
Basta editar o /etc/wsl.conf arquivo em seu sistema como root e adicione estas linhas:
[boot]
systemd=true
Se o arquivo wsl.conf não existir, não se preocupe e prossiga criando-o você mesmo. Essas linhas funcionarão independentemente.
Salve o arquivo e agora você terá que reiniciar qualquer distribuição WSL em execução. Para fazer isso, abra uma janela do PowerShell e digite este comando:
wsl
Abra outro terminal e você poderá gerenciar serviços com systemd no WSL.
Iniciando e parando serviços WSL com systemd
Agora você pode usar systemctl para iniciar e parar serviços no WSL.
Suponha que você estivesse usando o Apache para executar um servidor Web local para testar um aplicativo Web que estava desenvolvendo.
Você iniciaria o Apache assim:
sudo systemctl start apache2.service
Se você quisesse que ele iniciasse automaticamente, você o habilitaria usando:
sudo systemctl enable apache2.service
E desative-o com:
sudo systemctl stop apache2.service
Agora você pode executar o systemd no WSL
Com as atualizações mais recentes do WSL, agora você pode habilitar o systemd e iniciar e interromper serviços conforme necessário. Isso torna o WSL um bom ambiente para o desenvolvimento de aplicativos da Web, pois você pode testá-los como se estivesse usando qualquer outra máquina Linux padrão.
Também é extremamente fácil instalar um servidor LAMP (Linux, Apache, MySQL, PHP) no Windows Subsystem for Linux.
.