Capítulo 2.7 - Serviços e daemons
Objetivos de Aprendizagem
Ao final deste capítulo, você será capaz de:
- Compreender os serviços e daemons no Linux
- Gerenciar serviços com systemd
- Criar serviços personalizados
- Entender os unit files do systemd
O que é um Serviço/Daemon?
Um serviço (ou daemon) é um programa que roda em segundo plano, geralmente sem interface de usuário, para fornecer funcionalidades de sistema ou de rede.
Tipos de Serviços
Serviços de Sistema
Serviços essenciais para o funcionamento do sistema:
- sshd: Servidor SSH
- systemd-logind: Gerenciamento de sessões
- NetworkManager: Gerenciamento de rede
Serviços de Rede
Serviços que escutam na rede:
- apache2/nginx: Servidores web
- mysql/postgresql: Bancos de dados
- bind9: Servidor DNS
Serviços de Usuário
Serviços iniciados pelo usuário:
- pulseaudio: Áudio
- dbus: Comunicação entre processos
Gerenciamento com systemd
Comandos 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
# Recarregar a configuração
systemctl reload apache2
# Ativar na inicialização
systemctl enable apache2
# Desativar na inicialização
systemctl disable apache2
# Ver todos os serviços
systemctl list-units --type=service
# Ver serviços ativos
systemctl list-units --type=service --state=running
Unit Files
Os serviços são definidos por unit files em /etc/systemd/system/ ou /lib/systemd/system/:
Exemplo de serviço simples:
[Unit]
Description=Meu Serviço Personalizado
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/meu-servico
Restart=always
User=meuusuario
[Install]
WantedBy=multi-user.target
Seções:
- [Unit]: Metadados e dependências
- [Service]: Configuração do serviço
- [Install]: Instalação e ativação
Tipos de Serviços
Tipo simple
Serviço que inicia e permanece ativo:
Type=simple
ExecStart=/usr/bin/meu-servico
Tipo forking
Serviço que faz fork e o processo pai termina:
Type=forking
ExecStart=/usr/bin/meu-servico
PIDFile=/var/run/meu-servico.pid
Tipo oneshot
Serviço que executa uma vez e termina:
Type=oneshot
ExecStart=/usr/bin/script-init
RemainAfterExit=yes
Dependências
Os serviços podem ter dependências:
[Unit]
Description=Serviço Web
After=network.target mysql.service
Requires=mysql.service
Wants=redis.service
Diretivas:
- After: Inicia após estes serviços
- Before: Inicia antes destes serviços
- Requires: Dependência obrigatória
- Wants: Dependência opcional
Resumo
Neste capítulo, você aprendeu:
Serviços/Daemons: Programas em segundo plano
systemd: Gerenciador de serviços moderno
systemctl: Comandos de gerenciamento
Unit files: Configuração dos serviços
Dependências: After, Before, Requires, Wants
Tipos: simple, forking, oneshot
Próximos Passos
Capítulo 2.8: Níveis de Execução (Runlevels)
Capítulo 2.9: Processo de Inicialização (Boot)
Capítulo criado em: Dezembro 2024