Pular para o conteúdo principal

Capítulo 2.6 - Processos Init e systemd

Objetivos de Aprendizagem​

Ao final deste capítulo, você será capaz de:

  • Compreender o papel do processo init (PID 1)
  • Explicar como o systemd gerencia os serviços
  • Entender os unit files do systemd
  • Gerenciar serviços com systemctl

O que é o systemd?​

systemd é o sistema de inicialização e gerenciamento de serviços na maioria das distribuições Linux modernas. Ele substitui os antigos sistemas init (SysV init).


Papéis do systemd​

1. Primeiro Processo (PID 1)​

systemd é sempre o processo com PID 1:

  • Pai de todos os processos
  • Gerencia processos órfãos
  • Não pode ser finalizado normalmente

2. Gerenciamento de Serviços​

systemd inicia, para e monitora os serviços:

  • Inicialização automática no boot
  • Reinício em caso de falha
  • Dependências entre serviços
  • Monitoramento de status

3. Gerenciamento de Níveis de Execução​

systemd utiliza targets (equivalentes aos runlevels):

  • multi-user.target: Modo console
  • graphical.target: Modo gráfico
  • rescue.target: Modo de recuperação
  • poweroff.target: Desligamento

Unit Files​

Os serviços do systemd são definidos por unit files:

[Unit]
Description=Service Web Apache
After=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/apache2 -D FOREGROUND
Restart=always

[Install]
WantedBy=multi-user.target

Tipos de unit files:

  • .service: Serviços
  • .target: Níveis de execução
  • .timer: Tarefas agendadas (alternativa ao cron)
  • .mount: Pontos de montagem
  • .socket: Sockets de rede

Comandos systemctl​

Gerenciamento de serviços com systemctl:

# Ver o status de um serviço
systemctl status apache2

# Iniciar um serviço
systemctl start apache2

# Parar um serviço
systemctl stop apache2

# Reiniciar um serviço
systemctl restart apache2

# Habilitar na inicialização
systemctl enable apache2

# Desabilitar na inicialização
systemctl disable apache2

# Ver todos os serviços
systemctl list-units --type=service

Journal do systemd​

systemd gerencia os logs com journalctl:

# Ver os logs de um serviço
journalctl -u apache2

# Logs em tempo real
journalctl -f

# Logs desde hoje
journalctl --since today

# Logs por prioridade
journalctl -p err

Resumo​

Neste capítulo, você aprendeu:

systemd: Sistema de inicialização moderno, PID 1
Papéis: Gerenciamento de serviços, processos, níveis de execução
Unit files: Configuração de serviços
systemctl: Comandos de gerenciamento
journalctl: Visualização de logs


Próximos Passos​

Capítulo 2.7: Serviços e daemons
Capítulo 2.8: Níveis de Execução (Runlevels)


Capítulo criado em: Dezembro de 2024