Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Subsistema Windows para Linux (WSL) agora dá suporte ao systemd, um sistema de inicialização e gerenciador de serviços usado por muitas distribuições populares do Linux, como Ubuntu, Debian e muito mais. (O que é o systemd?).
O padrão de sistema init mudou recentemente de SystemV, com systemd agora como o padrão para a versão atual do Ubuntu, que será instalado usando o comandowsl --install
padrão. Distribuições do Linux, além da versão atual do Ubuntu, ainda podem usar o init do WSL, semelhante ao init do SystemV. Para alterar para systemd, consulte Como habilitar o systemd.
O que é sistemado 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 é executado como PID 1 e inicia o resto do sistema."
Sendo primordialmente um sistema init e gerenciador de serviços, o systemd inclui recursos como início sob demanda de daemons, montagem e manutenção automática de ponto de montagem, suporte a snapshots e rastreamento de processos usando grupos de controle Linux.
A maioria das principais distribuições Linux agora executam o systemd e habilitá-lo no WSL aproxima ainda mais a experiência de uso do Linux nativo. Consulte o anúncio em vídeo com demos do systemd ou exemplos do uso do systemd abaixo para saber mais sobre o que o systemd tem a oferecer.
Como habilitar o sistema?
O 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 qualquer outra distribuição Linux em execução no WSL 2 (alterando o padrão de usar o systemv init):
Verifique se a versão do WSL é 0.67.6 ou mais recente:
- para verificar, executar
wsl --version
; se o comando gerarInvalid command line option: --version
erro, você deverá atualizar o WSL; - para atualizar, execute
wsl --update
ou , e baixe a versão mais recente dona Microsoft Store.
- para verificar, executar
Abra uma linha de comando para sua distribuição do Linux e insira
cd /
para acessar o diretório raiz els
listar 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 inserindo:nano /etc/wsl.conf
.Adicione estas linhas no arquivo
wsl.conf
que está aberto agora 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 confirme com a chave
enter
).Em seguida, você precisará fechar a distribuição do Linux. Você pode usar o comando
wsl.exe --shutdown
no PowerShell para reiniciar todas as instâncias do WSL.Depois de reiniciar a distribuição do Linux, o systemd estará em execução. Você pode verificá-lo usando o comando
systemctl status
para mostrar o estado de execução de e o comandosystemctl list-unit-files --type=service
, que mostrará o status de quaisquer serviços associados à sua distribuição Linux.
Se a distribuição do Linux for Debian/Ubuntu/Kali Rolling, você deve ter não apenas 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 as Definiçã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 systemd
A Microsoft fez uma parceria com a Canonical para trazer suporte systemd para o WSL. Consulte Craig Loewen (PM para WSL na Microsoft) e Oliver Smith (PM para Ubuntu no WSL na Canonical) anunciarem suporte ao systemd e apresentarem algumas demonstrações do que ele possibilita.
Tutoriais de Oliver com base nessas demonstrações no blog do Ubuntu – dentre eles "Usar o snap para criar uma instância do Nextcloud em minutos no WSL", "Gerenciar seus projetos Web com LXD" e "Executar um .Net Echo Bot como um serviço systemd no Ubuntu WSL"
Exemplos do Systemd
Alguns exemplos de aplicativos Linux que dependem do sistema são:
snap: um sistema de empacotamento e implantação de software desenvolvido pela Canonical para sistemas operacionais que usam o kernel linux e o sistema de inicialização systemd. Os pacotes são chamados de "snaps", a ferramenta de linha de comando para criar 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 local, limitar e executar aplicativos fora deles) é chamado de "snapd". O sistema inteiro às vezes é chamado de "rápido". Tente executar o comando:
snap install spotify
.microk8s: um Kubernetes de software livre, de baixo esforço operacional e mínimo em produção que automatiza a implantação, o dimensionamento e o gerenciamento de aplicativos em contêineres. Siga as instruções para Instalar MicroK8s no WSL2, confira o Tutorial de Introdução, ou 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 o sistema e ajudá-lo a interagir com os serviços na distribuição do Linux. Experimente o comando:
systemctl list-units --type=service
para ver quais serviços estão disponíveis e seu status.
Alguns tutoriais relacionados demonstrando maneiras de usar systemd:
Como a habilitação do sistema afeta a arquitetura WSL?
Habilitar o suporte para o systemd exigiu mudanças na arquitetura do WSL. Como o systemd requer o PID 1, o processo de inicialização do WSL iniciado na distribuição Linux torna-se um processo filho do systemd. Como o processo de inicialização do WSL é responsável por fornecer a infraestrutura para comunicação entre os componentes do Linux e do Windows, alterar essa hierarquia exigiu repensar algumas das suposições feitas com o processo de inicialização do WSL. Modificações adicionais precisaram ser feitas para garantir um desligamento limpo (pois esse desligamento é controlado pelo sistema agora) e ter compatibilidade com WSLg, o componente do WSL que executa GUIs (Interfaces Gráficas do Usuário) do Linux ou os aplicativos Linux exibidos no Windows em vez da linha de comando.
Também é importante notar que, com essas mudanças, os serviços do systemd NÃO manterão sua instância do WSL ativa. Sua instância do WSL permanecerá ativa da mesma forma que acontecia antes desta atualização, sobre a qual você pode ler mais nesta postagem do Blog de suporte a tarefas em segundo plano de 2017.
Windows Subsystem for Linux