LESSON CONTENT:
O que é Systemd?
Systemd é o sistema init e gerenciador de serviços padrão para a maioria das distribuições Linux modernas. Ele é responsável por inicializar o sistema na ordem correta após o kernel ser carregado. Uma maneira simples de verificar se o seu sistema o utiliza é verificar se o diretório /usr/lib/systemd existe. Se existir, você provavelmente está executando um sistema gerenciado por systemd.
O Processo de Inicialização do Systemd
Em vez de scripts sequenciais rígidos, o systemd usa o conceito de "metas" (goals) para colocar seu sistema em um estado funcional. Ele identifica uma meta principal, ou target, e trabalha para satisfazer suas dependências. Essa abordagem permite maior flexibilidade e paralelização durante a inicialização. Um processo de boot típico gerenciado pelo systemd segue estas etapas:
- O systemd primeiro carrega seus arquivos de configuração de diretórios como
/etc/systemd/systeme/usr/lib/systemd/system. - Em seguida, ele identifica a meta de boot padrão, que geralmente é um link simbólico chamado
default.target. - Finalmente, o systemd resolve todas as dependências para este alvo e ativa as unidades necessárias para atingir o estado de sistema desejado.
Entendendo os Alvos (Targets) do Systemd
Targets no systemd são análogos aos runlevels no sistema init SysV mais antigo. Eles representam diferentes estados em que o sistema pode estar. Targets comuns incluem:
poweroff.target: Desliga o sistema.rescue.target: Inicializa em um shell de usuário único para manutenção.multi-user.target: Um ambiente multiusuário padrão com rede, mas sem interface gráfica.graphical.target: Um ambiente multiusuário completo com rede e uma interface gráfica do usuário (GUI).reboot.target: Reinicia o sistema.
A default.target é um link simbólico que aponta para o alvo no qual o sistema inicializará por padrão, frequentemente graphical.target em sistemas desktop.
Conceito Central: Unidades do Systemd
Os objetos fundamentais que o systemd gerencia são chamados de "unidades". Uma unidade é um arquivo de configuração que descreve um recurso ou serviço. O poder da arquitetura do system d reside em sua capacidade de gerenciar vários tipos de recursos, não apenas serviços. Cada tipo de unidade é identificado por sua extensão de arquivo. Os tipos mais comuns são:
- Unidades de Serviço (
.service): Gerenciam daemons ou serviços do sistema, como um servidor web ou um banco de dados. - Unidades de Montagem (
.mount): Controlam os pontos de montagem do sistema de arquivos. - Unidades de Alvo (
.target): São usadas para agrupar outras unidades, criando pontos de sincronização durante a inicialização.
Por exemplo, quando o sistema inicializa em graphical.target, essa unidade de alvo garante que todas as suas dependências, como multi-user.target e várias unidades de serviço como network.service, sejam iniciadas primeiro.