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