🛠️ Guia systemctl no Linux (serviços com systemd)

Aprenda a iniciar, parar, reiniciar e habilitar serviços na inicialização usando systemctl. Inclui exemplos práticos, erros comuns e comandos prontos para copiar.

Para monitorar jobs recorrentes, use também o nosso Gerador de Crontab Online e a Calculadora Chmod.

1. O que é o systemctl?

O systemctl é a ferramenta principal para controlar o systemd, o gerenciador de serviços e inicialização presente na maioria das distribuições modernas (Ubuntu, Debian, CentOS, Rocky, Fedora, etc.). Com ele você:

  • Inicia, para e reinicia serviços (start, stop, restart).
  • Verifica o status de um serviço (status).
  • Configura serviços para subir automaticamente no boot (enable / disable).
  • Recarrega arquivos de unidade após alterações (daemon-reload).

2. Comandos systemctl mais usados (tabela)

Ação Descrição Exemplo
systemctl status Mostra status detalhado de um serviço. systemctl status nginx
systemctl start Inicia um serviço imediatamente. systemctl start ssh
systemctl stop Para um serviço em execução. systemctl stop apache2
systemctl restart Reinicia um serviço (útil após mudar configs). systemctl restart php-fpm
systemctl enable Habilita serviço para iniciar no boot. systemctl enable nginx
systemctl enable --now Habilita no boot e já inicia o serviço. systemctl enable --now docker
systemctl disable Desabilita o serviço na inicialização. systemctl disable nginx
systemctl reload Recarrega configuração sem derrubar o processo (quando suportado). systemctl reload nginx
systemctl daemon-reload Recarrega arquivos de unit após editar ou criar um novo. systemctl daemon-reload

3. Gerador de comandos systemctl

Use o formulário abaixo para gerar rapidamente um comando systemctl para copiar e colar no seu terminal.

Comando gerado
systemctl restart nginx

4. Exemplos práticos para servidores

systemctl enable --now nginx

Instalou o Nginx e quer que ele já inicie agora e sempre no boot? Use enable --now em vez de duas chamadas separadas.

systemctl restart php-fpm

Depois de alterar o php.ini ou configurações do PHP-FPM, reinicie o serviço para aplicar as mudanças.

systemctl status ssh

Ao perder acesso SSH, verifique se o serviço está ativo e se há erros de configuração.

5. Usando journalctl com systemctl

Quando um serviço falha, o systemctl status geralmente mostra as últimas linhas de log. Para aprofundar, use journalctl:

  • journalctl -u nginx.service -f – segue os logs do Nginx em tempo real.
  • journalctl -u ssh.service --since "1 hour ago" – mostra logs do SSH da última hora.
  • journalctl -b -1 – logs do boot anterior.

Em breve, você poderá acessar também um guia dedicado de journalctl aqui no Admin Tools Lab.

6. Erros comuns ao usar systemctl

systemctl restart meu-servico

Erro: Unit meu-servico.service not found. Verifique o nome exato da unit com systemctl list-units --type=service | grep nome ou confira o arquivo em /etc/systemd/system.

systemctl enable meu-servico

Se você acabou de criar um arquivo de unit, lembre de rodar systemctl daemon-reload antes de habilitar ou iniciar o serviço.

systemctl restart apache2

Se o comando falhar, rode systemctl status apache2 e depois journalctl -u apache2 -xe para entender o erro real (porta em uso, erro de sintaxe no config etc.).

7. Perguntas frequentes sobre systemctl

Qual a diferença entre systemctl start e enable?

systemctl start apenas inicia o serviço na hora. systemctl enable cria links simbólicos para que ele suba automaticamente nas próximas inicializações do sistema. Use enable --now para fazer as duas coisas de uma vez.

Como saber se um serviço está habilitado no boot?

Use systemctl is-enabled nginx. O retorno será enabled, disabled ou outro status especial (como masked).

O que é uma unit file (arquivo de serviço)?

É um arquivo de configuração do systemd, geralmente em /lib/systemd/system ou /etc/systemd/system, que define como o serviço deve ser iniciado, parado, dependências, ambiente etc.

systemctl não existe no meu Linux. E agora?

Algumas distros antigas ou especializadas usam outros init systems (como SysVinit ou OpenRC). Nesse caso, os comandos são outros (service, /etc/init.d/, etc.). Em ambientes de certificação modernos (LPIC, RHCSA, Linux+) o systemd é o padrão.

Combine este guia com o Gerador de Crontab e a Calculadora Chmod para administrar melhor seus servidores Linux no dia a dia.

✅ Copiado para a área de transferência!