O systemd é o sistema init e gerenciador de serviços que alimenta virtualmente todas as distribuições Linux modernas, incluindo Ubuntu, Debian, Fedora, CentOS e Arch Linux. Ele substituiu o tradicional sistema SysVinit para fornecer inicialização paralela de serviços, gerenciamento de dependências, ativação sob demanda e registro centralizado. Seja gerenciando um único servidor ou uma frota de máquinas em produção, entender o systemd é essencial para a administração eficaz do Linux. Este guia cobre os comandos do systemctl, arquivos de unidade personalizados, temporizadores, gerenciamento do journal, análise de inicialização e controle de recursos com cgroups.
Pré-requisitos
Antes de começar, certifique-se de ter:
- Ubuntu Server 20.04, 22.04 ou 24.04 (ou qualquer distribuição baseada em systemd)
- Acesso ao terminal com privilégios sudo
- Familiaridade básica com a linha de comando do Linux
- Um editor de texto (nano, vim ou sua preferência)
O Que é o systemd?
O systemd é um gerenciador de sistema e serviços para Linux. Ele é executado como PID 1 — o primeiro processo iniciado pelo kernel — e é responsável por inicializar todo o espaço do usuário, gerenciar serviços durante todo seu ciclo de vida e desligar o sistema de forma limpa.
Os componentes principais do systemd incluem:
- systemctl — a ferramenta principal de linha de comando para controlar serviços e inspecionar o estado do sistema
- journald — um sistema de registro estruturado que coleta logs de todos os serviços, do kernel e da inicialização
- systemd-analyze — uma ferramenta para análise e otimização do desempenho de inicialização
- systemd-resolved — um serviço de resolução DNS
- systemd-networkd — um gerenciador de configuração de rede
- systemd-logind — um gerenciador de login e sessões
- systemd-tmpfiles — uma ferramenta para gerenciar arquivos e diretórios temporários
Verifique se seu sistema executa o systemd:
systemctl --version
Saída esperada:
systemd 252 (252.22-1ubuntu1)
+PAM +AUDIT +SELINUX +APPARMOR +IMA +SMACK +SECCOMP +GCRYPT ...
Verifique o estado geral do sistema:
systemctl status
Isso mostra uma árvore de serviços em execução, seus PIDs e uso de memória.
systemd vs SysVinit
Entender o que mudou em relação ao SysVinit ajuda a esclarecer por que o systemd funciona da maneira que funciona:
| Característica | SysVinit | systemd |
|---|---|---|
| Definição de serviço | Scripts shell em /etc/init.d/ | Arquivos de unidade declarativos em /etc/systemd/system/ |
| Ordem de inicialização | Sequencial (um após o outro) | Paralelo (baseado em dependências) |
| Tratamento de dependências | Manual com scripts de runlevel | Automático com Requires, After, Wants |
| Rastreamento de processos | Arquivos PID (não confiável) | cgroups (rastreamento no nível do kernel) |
| Registro | syslog / arquivos de log separados | journald (journal binário estruturado) |
| Ativação sob demanda | Não incorporado | Ativação por socket, ativação D-Bus |
| Controle de recursos | Nenhum | cgroups (limites de CPU, memória, E/S) |
| Alvos de inicialização | Runlevels (0-6) | Targets (multi-user.target, graphical.target) |
A vantagem principal do systemd é a confiabilidade: ele rastreia processos via cgroups para sempre saber quais processos pertencem a um serviço, mesmo que façam fork. Os arquivos PID usados pelo SysVinit eram uma fonte comum de estado obsoleto e falhas no gerenciamento de serviços.
Gerenciamento de Serviços com systemctl
O systemctl é o comando que você usará com mais frequência. Ele se comunica com o gerenciador do systemd para controlar serviços, inspecionar seu status e gerenciar seu comportamento de inicialização.
Iniciar e Parar Serviços
# Iniciar um serviço
sudo systemctl start nginx
# Parar um serviço
sudo systemctl stop nginx
# Reiniciar um serviço (parar e depois iniciar)
sudo systemctl restart nginx
# Recarregar configuração sem reiniciar (se suportado)
sudo systemctl reload nginx
# Recarregar ou reiniciar (recarregar se suportado, caso contrário reiniciar)
sudo systemctl reload-or-restart nginx
Verificar o Status do Serviço
sudo systemctl status nginx
Exemplo de saída:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2026-01-29 10:15:30 UTC; 2h ago
Docs: man:nginx(8)
Main PID: 1241 (nginx)
Tasks: 3 (limit: 4647)
Memory: 8.2M
CPU: 52ms
CGroup: /system.slice/nginx.service
├─1241 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─1242 "nginx: worker process"
└─1243 "nginx: worker process"
Campos importantes:
- Loaded — se o arquivo de unidade está carregado e onde está localizado
- Active — o estado atual (active, inactive, failed)
- Main PID — o identificador de processo principal do serviço
- CGroup — todos os processos pertencentes a este serviço
Habilitar e Desabilitar Serviços
Habilitar um serviço significa que ele iniciará automaticamente na inicialização. Desabilitar remove esse comportamento.
# Habilitar um serviço para iniciar na inicialização
sudo systemctl enable nginx
# Desabilitar um serviço da inicialização automática
sudo systemctl disable nginx
# Habilitar e iniciar em um único comando
sudo systemctl enable --now nginx
# Desabilitar e parar em um único comando
sudo systemctl disable --now nginx
Verificar o Estado de Habilitação
systemctl is-enabled nginx
# Saída: enabled
systemctl is-active nginx
# Saída: active
systemctl is-failed nginx
# Saída: active (não falhou)
Listar Serviços
# Listar todos os serviços ativos
systemctl list-units --type=service
# Listar todos os serviços (incluindo inativos)
systemctl list-units --type=service --all
# Listar serviços habilitados
systemctl list-unit-files --type=service --state=enabled
# Listar serviços com falha
systemctl list-units --type=service --state=failed
Entendendo os Arquivos de Unidade
O systemd gerencia tudo através de arquivos de unidade — arquivos de configuração declarativos que descrevem serviços, pontos de montagem, dispositivos, sockets, temporizadores e mais.
Tipos de Unidade
| Tipo de Unidade | Extensão | Propósito |
|---|---|---|
| Service | .service | Gerencia um daemon ou processo de execução única |
| Timer | .timer | Agenda a ativação de serviços (substituto do cron) |
| Socket | .socket | Gerencia a ativação baseada em sockets |
| Mount | .mount | Gerencia pontos de montagem do sistema de arquivos |
| Target | .target | Agrupa unidades para sincronização |
| Path | .path | Monitora caminhos do sistema de arquivos para alterações |
| Slice | .slice | Gerencia partições de recursos de cgroups |
| Device | .device | Gerencia nós de dispositivos do kernel |
Localizações dos Arquivos de Unidade
Os arquivos de unidade são carregados de múltiplos diretórios com precedência específica:
| Diretório | Propósito | Prioridade |
|---|---|---|
/etc/systemd/system/ | Sobrescritas do administrador local | Mais alta |
/run/systemd/system/ | Unidades de tempo de execução (não persistentes) | Média |
/lib/systemd/system/ | Unidades fornecidas pela distribuição | Mais baixa |
Sempre crie ou modifique unidades em /etc/systemd/system/. Nunca edite arquivos em /lib/systemd/system/ diretamente, pois as atualizações de pacotes irão sobrescrever suas alterações.
Inspecionar Arquivos de Unidade
# Ver o arquivo de unidade completo de um serviço
systemctl cat nginx.service
# Mostrar todas as propriedades de um serviço (configuração efetiva)
systemctl show nginx.service
# Mostrar uma propriedade específica
systemctl show nginx.service -p MainPID
systemctl show nginx.service -p ActiveState
# Listar todas as dependências de um serviço
systemctl list-dependencies nginx.service
Criando Unidades de Serviço Personalizadas
Uma das habilidades mais práticas do systemd é escrever seus próprios arquivos de unidade de serviço. Isso permite gerenciar qualquer aplicação — de um servidor Node.js a um binário Go ou um script Python — como um serviço do sistema.
Unidade de Serviço Básica
Crie um arquivo em /etc/systemd/system/myapp.service:
[Unit]
Description=My Custom Application
Documentation=https://example.com/docs
After=network.target
Wants=network-online.target
[Service]
Type=simple
User=myapp
Group=myapp
WorkingDirectory=/opt/myapp
ExecStart=/opt/myapp/bin/myapp --config /etc/myapp/config.yaml
Restart=on-failure
RestartSec=5
StandardOutput=journal
StandardError=journal
SyslogIdentifier=myapp
[Install]
WantedBy=multi-user.target
Detalhamento das Seções
[Unit] — metadados e dependências:
Description— descrição legível exibida na saída de statusDocumentation— URL para documentaçãoAfter— iniciar esta unidade após as unidades listadasWants— dependência fraca (não falha se a dependência falhar)Requires— dependência forte (falha se a dependência falhar)
[Service] — comportamento do serviço:
Type— como o systemd determina que o serviço está pronto (simple,forking,oneshot,notify,idle)User/Group— executar o serviço como este usuário/grupoWorkingDirectory— definir o diretório de trabalhoExecStart— o comando para iniciar o serviçoExecStartPre— comandos para executar antes do processo principalExecStartPost— comandos para executar após o processo principal iniciarExecStop— o comando para parar o serviço (padrão SIGTERM)ExecReload— o comando para recarregar a configuraçãoRestart— quando reiniciar (no,on-success,on-failure,on-abnormal,on-watchdog,on-abort,always)RestartSec— tempo de espera antes de reiniciar
[Install] — comportamento de instalação:
WantedBy— o target que deve incluir este serviço (geralmentemulti-user.target)
Tipos de Serviço Explicados
# Simple (padrão): ExecStart é o processo principal
Type=simple
# Forking: o processo faz fork e o pai sai (daemons tradicionais)
Type=forking
PIDFile=/run/myapp.pid
# Oneshot: o processo executa até completar e depois sai
Type=oneshot
RemainAfterExit=yes
# Notify: o processo envia uma notificação quando está pronto
Type=notify
# Idle: como simple mas espera até que todos os trabalhos sejam despachados
Type=idle
Ativar o Serviço
Após criar ou modificar um arquivo de unidade, recarregue o daemon do systemd e gerencie o serviço:
# Recarregar o systemd para ler arquivos de unidade novos/modificados
sudo systemctl daemon-reload
# Iniciar o serviço
sudo systemctl start myapp
# Verificar o status
sudo systemctl status myapp
# Habilitar na inicialização
sudo systemctl enable myapp
Sobrescrever Unidades Existentes
Em vez de editar arquivos de unidade fornecidos pelo fornecedor, use sobrescritas drop-in:
# Criar um diretório e arquivo de sobrescrita
sudo systemctl edit nginx.service
Isso abre um editor para /etc/systemd/system/nginx.service.d/override.conf. Adicione apenas as diretivas que deseja alterar:
[Service]
LimitNOFILE=65535
Para ver a configuração efetiva após as sobrescritas:
systemctl cat nginx.service
Temporizadores do systemd
Os temporizadores do systemd são um substituto moderno para as tarefas cron. Eles oferecem agendamento persistente (recuperando execuções perdidas), registro por temporizador e integração com o controle de recursos de cgroups.
Estrutura da Unidade de Temporizador
Um temporizador requer dois arquivos: uma unidade .timer e uma unidade .service correspondente com o mesmo nome.
Crie /etc/systemd/system/backup.timer:
[Unit]
Description=Run backup every day at 2:00 AM
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
RandomizedDelaySec=300
[Install]
WantedBy=timers.target
Crie /etc/systemd/system/backup.service:
[Unit]
Description=System Backup Service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
User=root
StandardOutput=journal
StandardError=journal
Tipos de Temporizador
Baseados em calendário (OnCalendar):
# Todos os dias à meia-noite
OnCalendar=daily
# Todas as segundas-feiras às 3 da manhã
OnCalendar=Mon *-*-* 03:00:00
# A cada 6 horas
OnCalendar=*-*-* 00/6:00:00
# Primeiro dia de cada mês
OnCalendar=*-*-01 00:00:00
# A cada 15 minutos
OnCalendar=*-*-* *:00/15:00
Monotônicos (relativos a um evento):
# 5 minutos após a inicialização
OnBootSec=5min
# 1 hora após o temporizador ser ativado
OnActiveSec=1h
# 30 minutos após a última execução ser concluída
OnUnitActiveSec=30min
Gerenciar Temporizadores
# Recarregar, habilitar e iniciar o temporizador
sudo systemctl daemon-reload
sudo systemctl enable --now backup.timer
# Listar todos os temporizadores ativos
systemctl list-timers --all
# Verificar o status do temporizador
systemctl status backup.timer
# Testar o serviço associado manualmente
sudo systemctl start backup.service
Verificar Expressões de Calendário
Use systemd-analyze calendar para testar suas expressões de temporizador:
systemd-analyze calendar "Mon *-*-* 03:00:00"
Saída:
Original form: Mon *-*-* 03:00:00
Normalized form: Mon *-*-* 03:00:00
Next elapse: Mon 2026-02-02 03:00:00 UTC
(in UTC): Mon 2026-02-02 03:00:00 UTC
From now: 3 days left
Gerenciamento de Journal e Logs com journalctl
O journald é o componente de registro do systemd. Ele coleta logs de todos os serviços, do kernel e do processo de inicialização em um journal binário estruturado que suporta buscas rápidas, filtragem e exportação.
Uso Básico do journalctl
# Ver todos os logs (mais antigos primeiro)
journalctl
# Ver as entradas mais recentes (mais novas primeiro)
journalctl -r
# Seguir logs em tempo real
journalctl -f
# Mostrar logs desde a última inicialização
journalctl -b
# Mostrar logs da inicialização anterior
journalctl -b -1
Filtrar por Serviço
# Logs de um serviço específico
journalctl -u nginx.service
# Seguir um serviço específico em tempo real
journalctl -u nginx.service -f
# Logs de múltiplos serviços
journalctl -u nginx.service -u php-fpm.service
Filtrar por Tempo
# Logs desde um horário específico
journalctl --since "2026-01-29 10:00:00"
# Logs em um intervalo de tempo
journalctl --since "2026-01-29 10:00:00" --until "2026-01-29 12:00:00"
# Logs da última hora
journalctl --since "1 hour ago"
# Logs de hoje
journalctl --since today
Filtrar por Prioridade
O journalctl suporta níveis de prioridade do syslog:
# Mostrar apenas erros e acima
journalctl -p err
# Mostrar avisos e acima
journalctl -p warning
# Mostrar críticos e acima
journalctl -p crit
| Nível de Prioridade | Palavra-chave | Numérico |
|---|---|---|
| Emergência | emerg | 0 |
| Alerta | alert | 1 |
| Crítico | crit | 2 |
| Erro | err | 3 |
| Aviso | warning | 4 |
| Notificação | notice | 5 |
| Informação | info | 6 |
| Depuração | debug | 7 |
Formatos de Saída
# Saída JSON (para processamento)
journalctl -u nginx.service -o json-pretty
# Saída curta com timestamps precisos
journalctl -u nginx.service -o short-precise
# Saída detalhada com todos os campos
journalctl -u nginx.service -o verbose
Gerenciar o Tamanho do Journal
# Verificar o uso atual de disco
journalctl --disk-usage
# Manter apenas as últimas 2 semanas de logs
sudo journalctl --vacuum-time=2weeks
# Limitar o tamanho do journal a 500 MB
sudo journalctl --vacuum-size=500M
# Remover journals arquivados
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
Para configuração persistente, edite /etc/systemd/journald.conf:
[Journal]
SystemMaxUse=500M
SystemMaxFileSize=50M
MaxRetentionSec=2week
Depois reinicie o journald:
sudo systemctl restart systemd-journald
Análise de Desempenho de Inicialização
O systemd fornece ferramentas integradas para medir e otimizar tempos de inicialização.
Tempo Total de Inicialização
systemd-analyze
Saída:
Startup finished in 3.245s (kernel) + 8.712s (userspace) = 11.957s
graphical.target reached after 8.510s in userspace.
Detalhamento por Serviço
# Listar serviços ordenados por tempo de inicialização
systemd-analyze blame
Saída:
5.012s NetworkManager-wait-online.service
1.234s snapd.service
892ms docker.service
456ms nginx.service
234ms ssh.service
...
Cadeia Crítica
A cadeia crítica mostra a sequência de unidades que determinou o tempo total de inicialização:
systemd-analyze critical-chain
Saída:
graphical.target @8.510s
└─multi-user.target @8.508s
└─nginx.service @8.052s +456ms
└─network-online.target @8.050s
└─NetworkManager-wait-online.service @3.038s +5.012s
└─NetworkManager.service @2.890s +145ms
└─basic.target @2.880s
Gráfico de Inicialização SVG
Gere uma linha do tempo visual do processo de inicialização:
systemd-analyze plot > boot-chart.svg
Abra o arquivo SVG em um navegador web para ver uma representação gráfica detalhada dos tempos de inicialização de serviços e dependências.
Identificar Serviços Lentos
# Encontrar serviços lentos para iniciar
systemd-analyze blame | head -20
# Verificar se um serviço específico atrasa a inicialização
systemd-analyze critical-chain nginx.service
Estratégias comuns de otimização de inicialização:
- Desabilitar serviços que não são necessários (
sudo systemctl disable nome_do_serviço) - Mascarar serviços que nunca devem ser executados (
sudo systemctl mask nome_do_serviço) - Investigar o
NetworkManager-wait-online.service(uma fonte comum de atraso na inicialização) - Usar ativação por socket para serviços que não são necessários imediatamente
Controle de Recursos com Cgroups
O systemd usa os grupos de controle do Linux (cgroups) para gerenciar e limitar os recursos disponíveis para cada serviço. Isso evita que um único serviço com mau comportamento consuma todos os recursos do sistema.
Ver o Uso Atual de Recursos
# Mostrar uso de recursos por slice
systemd-cgtop
Definir Limites de Memória
Adicione diretivas de recursos à seção [Service] de um arquivo de unidade:
[Service]
MemoryMax=512M
MemoryHigh=400M
MemoryMax— limite rígido; o OOM killer intervém se excedidoMemoryHigh— limite flexível; o kernel limita o serviço quando excedido
Definir Limites de CPU
[Service]
CPUQuota=50%
CPUWeight=100
CPUQuota— limita o serviço a uma porcentagem de um único núcleo de CPU (200% = dois núcleos)CPUWeight— peso relativo para compartilhamento de tempo de CPU (padrão é 100)
Definir Limites de E/S
[Service]
IOWeight=50
IOReadBandwidthMax=/dev/sda 10M
IOWriteBandwidthMax=/dev/sda 5M
Aplicar Limites em Tempo de Execução
Você pode aplicar limites de recursos temporariamente sem modificar arquivos de unidade:
# Limitar memória para um serviço em execução
sudo systemctl set-property nginx.service MemoryMax=512M
# Limitar CPU para um serviço em execução
sudo systemctl set-property nginx.service CPUQuota=50%
# Tornar a alteração persistente
sudo systemctl set-property nginx.service MemoryMax=512M --runtime=false
Ver Limites Efetivos
systemctl show nginx.service -p MemoryMax -p CPUQuota -p IOWeight
Referência de Comandos systemctl
| Comando | Descrição |
|---|---|
systemctl start <unidade> | Iniciar uma unidade |
systemctl stop <unidade> | Parar uma unidade |
systemctl restart <unidade> | Reiniciar uma unidade |
systemctl reload <unidade> | Recarregar configuração da unidade |
systemctl enable <unidade> | Habilitar unidade na inicialização |
systemctl disable <unidade> | Desabilitar unidade na inicialização |
systemctl enable --now <unidade> | Habilitar e iniciar imediatamente |
systemctl status <unidade> | Mostrar status da unidade |
systemctl is-active <unidade> | Verificar se a unidade está em execução |
systemctl is-enabled <unidade> | Verificar se a unidade está habilitada |
systemctl is-failed <unidade> | Verificar se a unidade falhou |
systemctl list-units | Listar todas as unidades carregadas |
systemctl list-unit-files | Listar todos os arquivos de unidade |
systemctl list-timers | Listar temporizadores ativos |
systemctl daemon-reload | Recarregar alterações de arquivos de unidade |
systemctl cat <unidade> | Mostrar conteúdo do arquivo de unidade |
systemctl show <unidade> | Mostrar todas as propriedades da unidade |
systemctl edit <unidade> | Criar sobrescrita drop-in |
systemctl mask <unidade> | Impedir que a unidade inicie |
systemctl unmask <unidade> | Remover máscara da unidade |
systemctl list-dependencies <unidade> | Mostrar dependências da unidade |
systemctl set-property <unidade> <chave>=<val> | Definir propriedade em tempo de execução |
journalctl -u <unidade> | Ver logs da unidade |
journalctl -u <unidade> -f | Seguir logs da unidade |
systemd-analyze blame | Mostrar tempo de inicialização por serviço |
systemd-analyze critical-chain | Mostrar caminho crítico de inicialização |
Solução de Problemas em Serviços com Falha
Quando um serviço falha, siga esta abordagem sistemática para diagnosticar e resolver o problema.
Passo 1: Verificar o Status
sudo systemctl status myapp.service
Procure a linha Active. Estados comuns:
active (running)— o serviço está funcionando normalmenteinactive (dead)— o serviço está paradofailed— o serviço parou inesperadamente ou falhou ao iniciaractivating (auto-restart)— o serviço está reiniciando
Passo 2: Ler os Logs
# Logs completos do serviço
journalctl -u myapp.service --no-pager
# Últimas 50 linhas
journalctl -u myapp.service -n 50
# Apenas erros
journalctl -u myapp.service -p err
Passo 3: Validar o Arquivo de Unidade
# Verificar erros de sintaxe
systemd-analyze verify /etc/systemd/system/myapp.service
Passo 4: Testar o Comando Manualmente
Execute o comando ExecStart manualmente como o usuário do serviço para verificar se a aplicação funciona:
sudo -u myapp /opt/myapp/bin/myapp --config /etc/myapp/config.yaml
Passo 5: Verificar Problemas Comuns
Erros de permissão:
# Verificar se o binário é executável
ls -la /opt/myapp/bin/myapp
# Verificar se o usuário existe
id myapp
# Verificar permissões do diretório
ls -la /opt/myapp/
Dependências ausentes:
# Verificar bibliotecas compartilhadas ausentes
ldd /opt/myapp/bin/myapp
Conflitos de porta:
# Verificar se a porta já está em uso
ss -tlnp | grep :8080
Passo 6: Redefinir um Serviço com Falha
# Redefinir o estado de falha
sudo systemctl reset-failed myapp.service
# Tentar iniciar novamente
sudo systemctl start myapp.service
Padrões de Erro Comuns
| Sintoma | Causa Provável | Solução |
|---|---|---|
code=exited, status=203/EXEC | Binário não encontrado ou não executável | Verificar o caminho do ExecStart e permissões |
code=exited, status=217/USER | O usuário do serviço não existe | Criar o usuário com useradd |
code=exited, status=200/CHDIR | WorkingDirectory não existe | Criar o diretório |
code=exited, status=1/FAILURE | Erro da aplicação | Verificar logs com journalctl |
| O serviço continua reiniciando | Loop de falhas | Verificar RestartSec, revisar logs da aplicação |
code=killed, signal=KILL | OOM killer | Aumentar MemoryMax ou otimizar a aplicação |
Resumo
O systemd é a base do gerenciamento de serviços em sistemas Linux modernos. Ele fornece uma abordagem unificada e declarativa para gerenciar serviços, agendar tarefas, controlar recursos e analisar o comportamento do sistema. Dominar o systemctl, os arquivos de unidade, os temporizadores e o journalctl oferece controle completo sobre como seus servidores Linux operam.
Pontos-chave:
- Use o
systemctlpara todas as tarefas de gerenciamento de serviços: iniciar, parar, habilitar, desabilitar e verificar status - Escreva arquivos de unidade personalizados em
/etc/systemd/system/para gerenciar suas próprias aplicações como serviços do sistema - Substitua tarefas cron por temporizadores do systemd para agendamento persistente, registro por tarefa e controle de recursos
- Use o
journalctlpara filtragem poderosa de logs por serviço, intervalo de tempo e nível de prioridade - Analise o desempenho de inicialização com
systemd-analyzee desabilite serviços desnecessários para acelerar o boot - Aplique limites de recursos com cgroups (
MemoryMax,CPUQuota) para evitar que serviços esgotem o sistema - Use sobrescritas drop-in (
systemctl edit) em vez de modificar arquivos de unidade do fornecedor
Para uma abordagem mais ampla sobre a segurança dos seus servidores Linux, consulte nosso Checklist de Segurança para Servidores Linux e Guia de Configuração do Firewall UFW.