🛠️ 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.
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.