Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
O Subsistema Windows para Linux (WSL) agora suporta systemd, um sistema init e gerenciador de serviços usado por muitas distribuições Linux populares, como Ubuntu, Debian e muito mais. (O que é systemd?).
O padrão do sistema init mudou recentemente do SystemV, com systemd agora sendo o predefinido para a versão atual do Ubuntu que será instalada usando o comando wsl --install predefinido. Distribuições Linux diferentes da versão atual do Ubuntu ainda podem usar o init WSL, semelhante ao SystemV init. Para mudar para systemd, consulte Como habilitar o systemd.
O que é systemd no Linux?
De acordo com systemd.io: "systemd é um conjunto de blocos de construção básicos para um sistema Linux. Ele fornece um sistema e um gerenciador de serviços que funciona como PID 1 e inicia o resto do sistema."
Principalmente um sistema de inicialização e gestor de serviços, o systemd inclui recursos como início sob demanda de daemons, manutenção de ponto de montagem e automontagem, suporte a snapshots e monitorização de processos usando grupos de controlo do Linux.
A maioria das principais distribuições Linux agora roda systemd, então habilitá-lo no WSL traz a experiência ainda mais perto do uso do Linux bare-metal. Veja abaixo o anúncio em vídeo do com demonstrações do systemd ou exemplos de uso do systemd para saber mais sobre o que o systemd tem a oferecer.
Como habilitar o systemd?
Systemd é agora o padrão para a versão atual do Ubuntu que será instalado usando o comando wsl --install padrão.
Para habilitar o systemd para quaisquer outras distribuições Linux em execução no WSL 2 (alterando o padrão de usar o systemv init):
Certifique-se de que sua versão do WSL é 0.67.6 ou mais recente:
- para verificar, execute
wsl --version; se o comando lançar erroInvalid command line option: --version, deve atualizar o WSL; - Para atualizar, execute
wsl --updateou e baixe a versão mais recente da Microsoft Store.
- para verificar, execute
Abra uma linha de comando para sua distribuição Linux e digite
cd /para acessar o diretório raiz e, em seguida,lslistar os arquivos. Você verá um diretório chamado "etc" que contém o arquivo de configuração WSL para a distribuição. Abra este arquivo para que você possa fazer uma atualização com o editor de texto Nano digitando:nano /etc/wsl.conf.Adicione estas linhas no arquivo de
wsl.confque você tem agora aberto para alterar o init usado para systemd:[boot] systemd=true
Saia do editor de texto Nano (Ctrl + X, digite Y para salvar sua alteração e confirmar com a tecla
enter).Em seguida, você precisará fechar a distribuição Linux. Você pode usar o comando
wsl.exe --shutdownno PowerShell para reiniciar todas as instâncias WSL.Depois de reiniciar a distribuição Linux, o systemd estará em execução. Você pode verificá-lo usando o comando
systemctl statuspara mostrar o em execução estado e o comandosystemctl list-unit-files --type=service, que mostrará o status de quaisquer serviços associados à sua distribuição Linux.
Se a sua distribuição Linux é Debian/Ubuntu/Kali Rolling, você não só deve ter instalado o pacote systemd, mas também certificar-se de que o pacote systemd-sysv está instalado.
sudo apt-get update -y && sudo apt-get install systemd systemd-sysv -y
Saiba mais sobre configuração de configurações avançadas no WSL, incluindo a diferença entre os arquivos de configuração wsl.conf (específicos da distribuição) e .wslconfig (globais), como atualizar as configurações de montagem automática, etc.
Vídeo de demonstração do Systemd
A Microsoft fez uma parceria com a Canonical para trazer suporte systemd para a WSL. Veja Craig Loewen (PM para WSL na Microsoft) e Oliver Smith (PM para Ubuntu na WSL na Canonical) anunciam o suporte ao systemd e mostram algumas demonstrações do que ele permite.
Os tutoriais de Oliver, baseados nestas demonstrações do blogue do Ubuntu - incluem "Use snap para criar uma instância de Nextcloud em minutos no WSL do Ubuntu", "Gerencie os seus projetos web com LXD" e "Execute um Bot .Net Echo como um serviço systemd no WSL do Ubuntu"
Exemplos de Systemd
Alguns exemplos de aplicações Linux que dependem do systemd são:
snap: um sistema de empacotamento e implementação de software desenvolvido pela Canonical para sistemas operacionais que usam o kernel Linux e o sistema systemd init. Os pacotes são chamados de "snaps", a ferramenta de linha de comando para construir snaps é chamada de "Snapcraft", o repositório central onde os snaps podem ser baixados/instalados é chamado de "Snap Store", e o daemon necessário para executar snaps (baixar da loja, montar no lugar, confinar e executar aplicativos fora deles) é chamado de "snapd". Todo o sistema é por vezes referido como "rápido". Tente executar o comando:
snap install spotify.microk8s: um Kubernetes de código aberto, com baixa necessidade de operações e mínimo para produção, que automatiza a implantação, o escalonamento e a gestão de aplicações em contentores. Siga as instruções para Instalar o MicroK8s no WSL2, confira o Tutorial de Introduçãoou assista ao vídeo no Kubernetes no Windows com MicroK8s e WSL 2.
systemctl: um utilitário de linha de comando usado para controlar e inspecionar systemd e para ajudá-lo a interagir com serviços em sua distribuição Linux. Experimente o comando:
systemctl list-units --type=servicepara ver quais serviços estão disponíveis e seu status.
Alguns tutoriais relacionados demonstrando maneiras de usar o systemd:
Como a ativação do systemd afeta a arquitetura WSL?
A habilitação do suporte para systemd exigiu alterações na arquitetura WSL. Como o systemd requer PID 1, o processo de inicialização do WSL iniciado dentro da distribuição Linux torna-se um processo filho do systemd. Como o processo de inicialização da WSL é responsável por fornecer a infraestrutura para a comunicação entre os componentes Linux e Windows, alterar essa hierarquia exigiu repensar algumas das suposições feitas com o processo de inicialização da WSL. Modificações adicionais tiveram que ser feitas para garantir um desligamento limpo (já que esse desligamento é controlado pelo systemd agora) e para ter compatibilidade com WSLg, o componente do WSL que executa Linux Graphical User Interfaces (GUIs), ou os aplicativos Linux que são exibidos no Windows em vez da linha de comando.
Também é importante notar que, com estas alterações, os serviços systemd NÃO manterão a sua instância de WSL ativa. Sua instância do WSL permanecerá ativa da mesma forma que antes desta atualização, sobre a qual você pode ler mais nesta postagem do blog Suporte a tarefas em segundo plano de 2017.
Windows Subsystem for Linux