Aula 15 - Gerenciamento de Serviços e Inicialização do Sistema com Systemd 🐧
Objetivo Pedagógico
Objetivo: Arquitetura do systemd, units de serviço (.service), comandos systemctl (start, stop, restart, status, enable, disable), análise de logs com journalctl e criação de um serviço personalizado.
📑 1. Fundamentos Teóricos & Arquitetura
Arquitetura do systemd, units de serviço (.service), comandos systemctl (start, stop, restart, status, enable, disable), análise de logs com journalctl e criação de um serviço personalizado. No ecossistema corporativo moderno, servidores de missão crítica, instâncias de nuvem (AWS, GCP, Azure), clusters Kubernetes e a esmagadora maioria dos supercomputadores do mundo rodam sobre sistemas Linux/Unix.
📐 Visão Arquitetural & Fluxo Operacional
graph TD
A["Espaço de Usuário (User Space)<br>Shell / Comandos / Aplicações"] -->|System Calls| B["Espaço de Kernel (Kernel Space)<br>Gerenciamento de Serviços e Inicialização do Sistema com Systemd"]
B --> C["Drivers e Periféricos"]
C --> D["Hardware Físico<br>CPU, Memória, Disco e Rede"]
style A fill:#e3f2fd,stroke:#1565c0
style B fill:#fff3e0,stroke:#e65100,stroke-width:2px
style C fill:#e8f5e9,stroke:#2e7d32
style D fill:#f3e5f5,stroke:#7b1fa2 🔍 Pilares Técnicos de Engenharia
Nesta unidade, exploramos em detalhe: - Systemd Units (.service): Pilar conceitual indispensável para administração profissional do sistema. - Comando systemctl: Pilar conceitual indispensável para administração profissional do sistema. - Logs com journalctl: Pilar conceitual indispensável para administração profissional do sistema. - Auto-inicialização no Boot: Pilar conceitual indispensável para administração profissional do sistema. - Tratamento de Falhas e Restart: Pilar conceitual indispensável para administração profissional do sistema.
💻 2. Laboratório de Comandos no Terminal
Execute os comandos práticos abaixo para validar e consolidar o aprendizado em seu terminal:
# Criando uma Unit de Serviço customizada no systemd
# /etc/systemd/system/minha-api.service
[Unit]
Description=Minha API Backend em Python
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/minha-api
ExecStart=/usr/bin/python3 app.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
# Comandos de ativação:
# sudo systemctl daemon-reload
# sudo systemctl enable --now minha-api
# journalctl -u minha-api -f
💡 Análise Técnica dos Comandos
- Padrão de Execução: Comandos são executados de forma não-interativa e com flags que favorecem automação em scripts de infraestrutura.
- Boas Práticas: Uso consciente de privilégios de superusuário (
sudo), minimizando execuções diretas como root. - Inspeção e Verificação: Sempre valide o código de retorno (
echo $?) e consulte a documentação oficial comman [comando].
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto