Base de Conhecimento

systemctl: como iniciar, parar e ver serviços na VPS

  • systemctl, systemd, linux, vps, serviços, terminal
  • Usuários acharam útil: 0

Aprenda o systemctl na VPS: ver o status de um serviço, iniciar, parar e reiniciar, a diferença entre enable e start, listar os que falharam e usar o daemon-reload.

Por Redação Eleven Host · @robson.direitodigital · 30 de outubro de 2026 · 8 min de leitura

Arte da Eleven Host: janela de terminal com o título: systemctl: como iniciar, parar e ver serviços na VPS

Capa da Redação Eleven Host para o guia: systemctl: como iniciar, parar e ver serviços na VPS Arte: Eleven Host

O systemctl controla os serviços do systemd: com ele você inicia, para, reinicia, vê o status e liga um serviço no boot. O exemplo mais simples é systemctl status nginx, que mostra como o serviço nginx está agora.

Este guia explica o que é um serviço, como ler o status, qual é a diferença entre start e enable, como listar serviços que falharam e o que fazer depois de mudar um arquivo de serviço. Os fatos vêm da página de manual do systemctl e da documentação do systemd. O nginx aparece como exemplo; troque pelo nome do serviço que você usa.

O que é um serviço e o que é o systemd

Quem administra uma VPS por SSH lida com programas que ficam rodando em segundo plano, como um servidor web ou um banco de dados. No Linux, esses programas podem ser controlados pelo systemd, e o comando que conversa com ele é o systemctl.

O systemctl trabalha com unidades. Um serviço é um tipo de unidade, e a documentação cita outros tipos, como socket. Nos exemplos deste guia, o nome do serviço aparece sem sufixo, como nginx; o nome.service aparece só na seção do mask.

Se você ainda não tem o nginx instalado e quer um serviço real para acompanhar os exemplos, o guia Instalar Nginx no Ubuntu: passo a passo na VPS mostra a instalação.

Ver o status de um serviço

O comando para olhar um serviço é o status. Ele mostra o estado atual do serviço e, logo abaixo, as mensagens recentes do journal, o registro de logs do systemd:

systemctl status nginx

Por padrão, o status mostra 10 linhas de log. Dá para mudar isso com a opção --lines. Para evitar que a saída abra num paginador, acrescente --no-pager:

systemctl status nginx --no-pager

Como ler Loaded e Active

A página de manual traz um exemplo de saída para o serviço bluetooth. As duas linhas que importam têm este formato (os valores são ilustrativos, copiados do exemplo do manual, e na sua VPS serão outros):

Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)

Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago

  • Loaded: diz se a unidade foi carregada na memória. O valor é loaded quando foi. Os outros valores possíveis são error, not-found, bad-setting e masked. A linha também informa se o serviço está habilitado, o enabled do exemplo.
  • Active: é normalmente active ou inactive, segundo a página de manual. Durante a troca de um estado para outro aparecem activating e deactivating. Se o serviço falhou, aparece failed.

O ponto no começo da linha resume o estado por cor: verde para ativo, círculo branco para inativo ou em manutenção e xis vermelho para falhou. Para ver mensagens mais antigas do que as que o status mostra, a página manda usar o journalctl --unit=NOME, assunto de uma seção mais adiante.

Iniciar, parar, reiniciar e recarregar

Os quatro comandos básicos mudam o estado do serviço. Eles alteram o sistema, então são rodados com sudo:

sudo systemctl start nginx

sudo systemctl stop nginx

sudo systemctl restart nginx

sudo systemctl reload nginx

  • start: ativa o serviço, isto é, liga agora.
  • stop: desativa o serviço, isto é, para agora.
  • restart: para e inicia de novo. Se o serviço não estava rodando, ele é iniciado.
  • reload: pede ao serviço que recarregue a própria configuração.

Dois comandos parecidos merecem atenção. O try-restart só reinicia se o serviço estiver rodando e não faz nada se ele estiver parado. O reload-or-restart recarrega a configuração se o serviço suportar isso e, se não suportar, reinicia:

sudo systemctl reload-or-restart nginx

Se o serviço suporta o reload depende do programa; a documentação do systemctl não promete que funcione para todo serviço.

Ligar no boot: enable e start são coisas diferentes

Aqui está o centro do guia. O start liga o serviço agora, mas não decide o que acontece quando a VPS reinicia. Quem decide isso é o enable, que faz o serviço subir no boot. Ele cria os links simbólicos da seção [Install] do arquivo do serviço e recarrega a configuração do systemd.

O enable não inicia o serviço. A documentação diz que ele não tem o efeito de também iniciar as unidades habilitadas. Para ligar agora e também no boot, use enable --now.

Resumindo as três formas:

  • start: liga agora, e só agora.
  • enable: liga a partir do próximo boot.
  • enable --now: faz as duas coisas.

sudo systemctl enable nginx

sudo systemctl enable --now nginx

O caminho inverso segue a mesma lógica. O disable remove os links e não para o serviço, a não ser que você use --now:

sudo systemctl disable --now nginx

Para conferir o resultado sem abrir o status inteiro, existem dois comandos curtos. O is-active informa se o serviço está ativo. O is-enabled escreve o estado de habilitação, que pode ser enabled, disabled, masked, static ou outro valor da lista da documentação:

systemctl is-active nginx

systemctl is-enabled nginx

Precisa de um servidor para os seus serviços? O Plano Bronze da VPS sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Ver planos de VPS

Listar serviços e achar os que falharam

Para ver o que está rodando, use o list-units com o filtro de tipo. Por padrão ele mostra as unidades ativas, as que têm tarefa pendente e as que falharam. Com --all, entram também as inativas:

systemctl list-units --type=service

systemctl list-units --type=service --all

Para ver só os que falharam, use --failed, que equivale a --state=failed:

systemctl --failed

Há ainda o list-unit-files, que lista os arquivos de unidade instalados e informa se estão habilitados. Ele responde à pergunta "o que está configurado para subir no boot", e não "o que está rodando agora":

systemctl list-unit-files --type=service

Usar o resultado em scripts

O is-active sai com código 0 se a unidade está ativa e com código diferente de zero se não está. Com a opção --quiet ele não escreve nada, e o shell usa só o código:

systemctl is-active --quiet nginx && echo "rodando"

O && roda o segundo comando só se o primeiro terminar com sucesso. A página de manual avisa que os códigos de saída seguem uma convenção cujo mapeamento não é perfeito e recomenda olhar o estado da unidade.

Depois de mudar o arquivo do serviço: daemon-reload

Depois de mudar o arquivo de unidade de um serviço, a documentação indica o daemon-reload, que roda os geradores de novo, recarrega todos os arquivos de unidade e refaz a árvore de dependências:

sudo systemctl daemon-reload

Não confunda com o reload de um serviço. O reload nginx faz o nginx reler a configuração dele. O arquivo de unidade, o .service, é lido pelo daemon-reload. O guia Python na VPS: como rodar seu script com venv e systemd traz um serviço para um script, caso você queira ver um caso concreto.

mask e unmask: impedir que um serviço inicie

O mask liga a unidade a /dev/null. Segundo a documentação, isso torna impossível iniciá-la, nem manualmente. O unmask desfaz:

sudo systemctl mask nome.service

sudo systemctl unmask nome.service

Um serviço mascarado aparece com o valor masked na linha Loaded do status e no resultado do is-enabled. Se você tentar iniciar um serviço e ele se recusar, confira se ele não está nesse estado.

Ver os logs de um serviço com journalctl -u

Quando o status mostra failed, o log do serviço é o lugar para procurar a causa. O journalctl lê o journal do systemd, e a opção -u (ou --unit=) mostra as mensagens de uma unidade:

journalctl -u nginx -n 50 --no-pager

journalctl -u nginx -f

journalctl -u nginx -b -p err

  • -n 50: limita às 50 mensagens mais recentes.
  • -f: mostra as mais recentes e continua mostrando as novas, até você interromper.
  • -b: mostra as mensagens do boot atual.
  • -p err: filtra por prioridade. Com um nível, mostra esse nível e os mais importantes.

O guia journalctl: como ver os logs do sistema na VPS trata do journalctl com mais calma. A página de manual também lista --since e --until, para filtrar por data.

Comandos para guardar

  • systemctl status nginx: estado atual e mensagens recentes.
  • sudo systemctl start nginx: liga agora.
  • sudo systemctl stop nginx: para agora.
  • sudo systemctl restart nginx: para e inicia de novo.
  • sudo systemctl reload nginx: o serviço recarrega a própria configuração.
  • sudo systemctl enable nginx: sobe no boot, sem iniciar agora.
  • sudo systemctl enable --now nginx: liga agora e no boot.
  • systemctl is-active nginx e systemctl is-enabled nginx: conferem o estado.
  • systemctl list-units --type=service: lista os serviços.
  • systemctl --failed: lista os que falharam.
  • sudo systemctl daemon-reload: depois de editar um arquivo de unidade.
  • journalctl -u nginx -n 50 --no-pager: logs do serviço.

Quer ter um servidor para administrar os seus próprios serviços? O Plano Bronze da VPS sai a partir de R$ 17,00/mês; confira na loja o que cada plano inclui. Conhecer a VPS

Perguntas frequentes

Para que serve o systemctl?

Para controlar as unidades do systemd, como os serviços: iniciar, parar, reiniciar, ver o status e ligar no boot.

Qual a diferença entre start e enable?

O start liga o serviço agora. O enable faz o serviço subir no boot, mas não o inicia. Para as duas coisas de uma vez, use enable --now.

Qual a diferença entre reload e daemon-reload?

O reload pede ao serviço que recarregue a própria configuração. O daemon-reload faz o systemd recarregar os arquivos de unidade, e é o comando para depois de editar um arquivo .service.

Como ver os serviços que falharam?

Use systemctl --failed, que equivale a --state=failed. Depois veja o log do serviço com journalctl -u NOME.

O que faz o systemctl mask?

Liga a unidade a /dev/null e torna impossível iniciá-la, nem manualmente. O unmask desfaz.

Esta resposta lhe foi útil?

Artigos Relacionados