Pular para o conteúdo principal

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