systemctl é a principal ferramenta para gerir serviços na maioria das distribuições modernas de VPS Linux. Controla serviços geridos por systemd, incluindo servidores web, bases de dados, bots, daemons de servidores de jogos, ferramentas de monitorização e serviços personalizados que você mesmo cria.
Nos exemplos abaixo, substitua nginx pelo serviço que está a gerir. Nomes comuns de serviços incluem nginx, apache2, mariadb, mysql, docker, sshd, e nomes personalizados como arkserver ou discordbot.
Verificar um serviço
Use status antes de reiniciar um serviço. Mostra se o serviço está em execução, se está ativado na inicialização e a saÃda de erros recentes.
sudo systemctl status nginx
A captura de ecrã abaixo usa o serviço SSH como exemplo; o mesmo layout de saÃda aplica-se a outros serviços systemd.

Se a saÃda disser failed, leia as linhas de erro antes de reiniciá-lo repetidamente.
Também pode ver logs com journalctl:
sudo journalctl -u nginx --since "30 minutes ago"
Siga logs ao vivo enquanto reinicia ou testa o serviço:
sudo journalctl -u nginx -f
Iniciar, parar, reiniciar e recarregar
| Comando | O que faz |
|---|---|
sudo systemctl start nginx | Inicia um serviço parado. |
sudo systemctl stop nginx | Para um serviço em execução. |
sudo systemctl restart nginx | Para e inicia o serviço novamente. |
sudo systemctl reload nginx | Recarrega a configuração sem uma reinicialização completa, se o serviço suportar recargas. |
sudo systemctl reload-or-restart nginx | Recarrega se possÃvel, caso contrário reinicia. |
Use reload quando apenas alterou um ficheiro de configuração e o serviço o suporta. Use restart quando a aplicação precisa de uma paragem/inÃcio completa para aplicar alterações.
Ativar ou desativar a inicialização automática
Iniciar um serviço agora e ativá-lo na inicialização são ações diferentes. Se quiser que um serviço volte após uma reinicialização do VPS, ative-o.
sudo systemctl enable nginx sudo systemctl start nginx
Para ativar e iniciar num único comando:
sudo systemctl enable --now nginx
Para impedir que inicie automaticamente na inicialização:
sudo systemctl disable nginx
Reiniciar múltiplos serviços
Pode passar mais de um nome de serviço para muitos comandos systemctl:
sudo systemctl restart nginx php8.2-fpm mariadb
Isto é útil após alterar uma stack onde múltiplos serviços dependem uns dos outros, como um servidor web, PHP-FPM e base de dados.
Usar wildcards
systemctl pode corresponder nomes de serviços com wildcards. Isto é útil, mas use com cuidado porque pode afetar mais serviços do que pretendia.
Por exemplo, isto mostra todos os serviços PHP-FPM correspondentes:
systemctl list-units 'php*-fpm.service'
Após verificar as correspondências, pode reiniciar os serviços correspondentes:
sudo systemctl restart 'php*-fpm.service'
Sempre liste as correspondências primeiro antes de usar um wildcard com restart, stop ou disable.
Criar um serviço personalizado
Pode criar um serviço systemd personalizado para um servidor de jogos, bot ou script para que inicie na inicialização e possa ser gerido com systemctl.
Crie um ficheiro de unidade em /etc/systemd/system/:
sudo nano /etc/systemd/system/myserver.service
Um ficheiro de serviço simples parece-se com isto:
[Unit] Description=My custom server After=network.target [Service] Type=simple User=myuser WorkingDirectory=/home/myuser/myserver ExecStart=/home/myuser/myserver/start.sh Restart=on-failure RestartSec=10 [Install] WantedBy=multi-user.target
Após criar ou alterar um ficheiro de serviço, recarregue o systemd para que veja a nova unidade:
sudo systemctl daemon-reload
Depois ative e inicie-o:
sudo systemctl enable --now myserver
Verifique com:
sudo systemctl status myserver sudo journalctl -u myserver -f
Se o serviço falhar, verifique o caminho em ExecStart, o User, permissões de ficheiros, e se o script de inicialização é executado manualmente antes de tentar executá-lo através do systemd.
