Como Usar o systemctl - Guia de Gerenciamento de Servicos Linux
O que voce vai aprender
- Como gerenciar servicos (Nginx/Apache/SSH etc.) com
systemctlno Ubuntu - Como resolver problemas de "nao funciona", "precisa reiniciar", "precisa iniciar automaticamente" rapidamente
- Padroes padrao para resposta a incidentes
Resumo Rapido
Domine estes comandos e voce lidara com a maioria das situacoes:
- Verificar status:
systemctl status <service> - Iniciar:
systemctl start <service> - Parar:
systemctl stop <service> - Reiniciar:
systemctl restart <service> - Recarregar config:
systemctl reload <service>(se suportado) - Habilitar inicio automatico:
systemctl enable <service> - Desabilitar inicio automatico:
systemctl disable <service>
No Ubuntu, a maioria dos comandos requer privilegios de administrador, entao adicione sudo.
Pre-requisitos
- SO: Ubuntu
- Ambiente systemd
- Permissoes: acesso
sudo
1. O que e systemctl?
Conclusao: systemctl e o gerenciador de servicos do systemd para iniciar, parar, reiniciar e verificar status.
systemctl e o comando de gerenciamento de servicos do systemd.
Voce pode iniciar/parar/reiniciar/verificar status dos servicos em execucao no servidor (ex.: nginx, apache2, ssh, docker).
2. Comece com "status"
Conclusao: Sempre comece a solucao de problemas com systemctl status para ler active ou failed.
A solucao de problemas sempre comeca aqui.
$ sudo systemctl status nginx
Indicadores principais:
Active: active (running)-> Em execucaoActive: inactive (dead)-> ParadoActive: failed-> Falhou (precisa investigacao)
Para status failed, verifique os logs com journalctl -u - esse e o caminho mais rapido.
3. start/stop/restart
Conclusao: Use start, stop, restart para controlar um servico; restart apos alteracoes de configuracao.
3-1. Iniciar
$ sudo systemctl start nginx
3-2. Parar
$ sudo systemctl stop nginx
3-3. Reiniciar
$ sudo systemctl restart nginx
Apos alteracoes de configuracao, use restart.
Se o servico suporta reload, voce pode usar reload para aplicar alteracoes sem tempo de inatividade.
4. reload / reload-or-restart
Conclusao: reload aplica configuracao sem tempo de inatividade; reload-or-restart e o fallback seguro.
4-1. reload (apenas para servicos que suportam)
$ sudo systemctl reload nginx
4-2. reload-or-restart (fallback seguro)
$ sudo systemctl reload-or-restart nginx
- Usa reload se suportado
- Volta para restart caso contrario
5. Inicio automatico (enable/disable) - Problema comum de iniciantes
Conclusao: enable configura o inicio automatico na proxima inicializacao; voce ainda precisa de start para executa-lo agora.
"Esta rodando agora, mas para depois de reiniciar" - este e o problema.
5-1. Habilitar inicio automatico
$ sudo systemctl enable nginx
5-2. Desabilitar inicio automatico
$ sudo systemctl disable nginx
5-3. Verificar status de inicio automatico
$ systemctl is-enabled nginx
Saida:
enabled: Inicio automatico LIGADOdisabled: Inicio automatico DESLIGADO
6. Solucionando "nao funciona"
Conclusao: Verifique o status, leia os logs com journalctl, verifique a sintaxe da configuracao e reinicie.
6-1. Verificar status
$ sudo systemctl status nginx
6-2. Se falhou, verifique os logs (caminho mais rapido)
$ sudo journalctl -u nginx -n 200
Acompanhamento em tempo real:
$ sudo journalctl -u nginx -f
6-3. Verifique a sintaxe da configuracao primeiro (ex.: nginx)
$ sudo nginx -t
Se voce fizer restart com configuracao quebrada, o servico pode ficar parado.
Verifique a sintaxe primeiro -> reinicie se OK e a abordagem segura.
7. Encontrando nomes de servicos
Conclusao: Nomes de servicos variam, entao use grep em systemctl list-units --type=service para encontra-los.
Nomes de servicos variam por ambiente (ex.: Apache e apache2 no Ubuntu).
Buscar na lista:
$ systemctl list-units --type=service | grep -i apache
Listar todos (muitos resultados):
$ systemctl list-units --type=service
8. Armadilhas comuns
Conclusao: Rodando mas inacessivel significa verificar portas ou firewall; enable sozinho nao inicia.
8-1. status mostra "running" mas nao consigo acessar
Mesmo que o servico esteja rodando, vinculacao de porta, firewall ou erros de aplicacao podem impedir o acesso. Combine com solucao de problemas de "conectividade de porta (ss/lsof/nc/curl)" para resolucao mais rapida.
8-2. Habilitado mas nao rodando
enable significa "iniciar automaticamente na proxima inicializacao".
Para iniciar agora, voce tambem precisa de start.
$ sudo systemctl enable nginx $ sudo systemctl start nginx
Resumo (Modelo para Copiar e Colar)
# Verificar status sudo systemctl status <service> # Iniciar/Parar/Reiniciar sudo systemctl start <service> sudo systemctl stop <service> sudo systemctl restart <service> # Recarregar configuracao (se suportado) sudo systemctl reload <service> sudo systemctl reload-or-restart <service> # Inicio automatico sudo systemctl enable <service> sudo systemctl disable <service> systemctl is-enabled <service> # Logs sudo journalctl -u <service> -n 200 sudo journalctl -u <service> -f