Pular para o conteúdo principal

Capítulo 8.1 - Introdução ao systemd

Objetivos de Aprendizagem​

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

  • Compreender o que é o systemd
  • Utilizar o systemctl para gerenciar serviços
  • Entender as unidades do systemd
  • Visualizar o status dos serviços
  • Iniciar, parar e reiniciar serviços

O que é o systemd?​

systemd é o sistema de inicialização e gerenciamento de serviços presente na maioria das distribuições Linux modernas.

Funções:

  • Gerenciamento de serviços
  • Inicialização do sistema
  • Gerenciamento de logs (journald)
  • Agendamento (timers)
  • Montagem de sistemas de arquivos

Unidades do systemd​

Tipos de Unidades​

# Ver tipos
systemctl list-units --type=service
systemctl list-units --type=timer
systemctl list-units --type=mount
systemctl list-units --type=socket

Tipos comuns:

  • .service: Serviços
  • .timer: Tarefas agendadas
  • .mount: Pontos de montagem
  • .socket: Sockets de rede
  • .target: Grupos de unidades

systemctl - Comandos Básicos​

Visualizar o Status​

# Todos os serviços
systemctl list-units --type=service

# Serviços ativos
systemctl list-units --type=service --state=running

# Serviços inativos
systemctl list-units --type=service --state=inactive

# Serviços com falha
systemctl list-units --type=service --state=failed

# Status de um serviço
systemctl status sshd
systemctl status apache2

Iniciar/Parar​

# Iniciar
sudo systemctl start service_name

# Parar
sudo systemctl stop service_name

# Reiniciar
sudo systemctl restart service_name

# Recarregar configuração
sudo systemctl reload service_name

# Recarregar ou reiniciar
sudo systemctl reload-or-restart service_name

Ativar/Desativar na Inicialização​

# Ativar (inicialização automática)
sudo systemctl enable service_name

# Desativar
sudo systemctl disable service_name

# Ativar e iniciar
sudo systemctl enable --now service_name

# Verificar se está ativado
systemctl is-enabled service_name

Estados dos Serviços​

Estados Possíveis​

Estados:

  • active (running): Em execução
  • active (exited): Finalizado com sucesso
  • inactive: Parado
  • failed: Falha
  • activating: Em processo de inicialização

Ver Detalhes​

# Status detalhado
systemctl status service_name

# Informações completas
systemctl show service_name

# Propriedade específica
systemctl show -p ActiveState service_name
systemctl show -p LoadState service_name

Comandos Úteis​

Listar Serviços​

# Todos os serviços
systemctl list-units --type=service --all

# Serviços ativados
systemctl list-unit-files --type=service --state=enabled

# Serviços desativados
systemctl list-unit-files --type=service --state=disabled

# Por estado
systemctl list-units --type=service --state=running
systemctl list-units --type=service --state=failed

Mascarar/Desmascarar​

# Mascarar serviço
sudo systemctl mask service_name

# Desmascarar
sudo systemctl unmask service_name

Recarregar systemd​

# Recarregar configuração (após modificar arquivos)
sudo systemctl daemon-reload

Exemplos Práticos​

Gerenciamento do SSH​

# Ver status
systemctl status sshd

# Iniciar
sudo systemctl start sshd

# Ativar na inicialização
sudo systemctl enable sshd

# Reiniciar
sudo systemctl restart sshd

Gerenciamento do Apache/Nginx​

# Apache
sudo systemctl start apache2
sudo systemctl enable apache2
sudo systemctl status apache2

# Nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

Serviços com Falha​

# Ver serviços com falha
systemctl list-units --state=failed

# Reiniciar serviço com falha
sudo systemctl restart failed_service

# Ver logs
sudo journalctl -u failed_service

Resumo​

Neste capítulo, você aprendeu:

systemd: Sistema de inicialização e gerenciamento de serviços
Unidades: .service, .timer, .mount, .socket, .target
systemctl: Comandos para gerenciar serviços
Estados: active, inactive, failed, activating
Comandos: start, stop, restart, enable, disable, status
Prática: Gerenciamento de serviços comuns (SSH, Apache, etc.)


Próximos Passos​

Capítulo 8.2: Criação de Serviços Personalizados
Capítulo 8.3: Cron Avançado e systemd Timers


Capítulo criado em: Dezembro 2024