Pular para conteúdo

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

  1. 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.
  2. Boas Práticas: Uso consciente de privilégios de superusuário (sudo), minimizando execuções diretas como root.
  3. Inspeção e Verificação: Sempre valide o código de retorno (echo $?) e consulte a documentação oficial com man [comando].

🎯 3. Próximos Passos & Sequência Didática