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 consolegraphical.target: Modo gráficorescue.target: Modo de recuperaçãopoweroff.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