50% de desconto todos os planos, por tempo limitado. A partir de $2.48/mo
7 min restante
Servidores e SO

Como Corrigir o Erro "systemctl: Command Not Found" no Ubuntu

Nick Prata By Nick Prata 7 min de leitura Atualizado 20 de fevereiro de 2025
como corrigir systemctl: comando não encontrado

Uma das ferramentas mais poderosas e práticas para usuários de Linux, especialmente em distribuições modernas como Ubuntu, é a comando systemctl. Este utilitário de linha de comando é normalmente usado para interagir com o systemd, o gerenciador de sistema e serviços.

Por meio do comando, você consegue gerenciar serviços do sistema, verificar seu status, iniciá-los ou pará-los, e habilitá-los ou desabilitá-los na inicialização. Bem prático, né? Mas se o comando systemctl não for encontrado ou reconhecido, você vai se deparar com o sudo:systemctl: comando não encontrado erro.

Então, vamos falar sobre o que significa o erro "systemctl: command not found", as várias razões pelas quais você está enfrentando esse erro e como corrigi-lo.

O que significa o erro 'systemctl: Comando não encontrado'?

Em resumo, o erro "systemctl: command not found" indica que o utilitário de linha de comando systemctl não está disponível ou acessível no ambiente atual. Isso pode ocorrer por várias razões, mas todas se resumem a duas causas principais: o ambiente não é um ambiente de sistema, ou o pacote systemd não foi instalado no sistema.

Essencialmente, o pacote systemd não está instalado, ou sua distribuição ou versão Linux não usa systemd; em vez disso, usa sistemas de gerenciamento de serviços mais antigos como init.d. Outra possibilidade é que a variável de ambiente PATH não inclua o diretório onde systemctl está localizado, o que significa que seu shell não consegue encontrá-lo.

Agora que você tem uma ideia do que pode estar errado no seu sistema e causando o erro "systemctl: command not found", vamos ver como verificar onde está o problema e como corrigi-lo.

Corrigindo o erro 'systemctl: Command Not Found'

Nos próximos passos, vamos verificar se seu sistema tem systemd instalado e se usa systemctl, além de confirmar o caminho do systemctl. Depois de identificarmos o problema, vamos executar as etapas necessárias para corrigir o erro.

1. Verificando se o seu sistema usa systemd

Como o Ubuntu systemctl só funciona se você tiver o pacote systemd instalado, primeiro vamos verificar se seu sistema deve usar systemd executando o comando a seguir:

ps -p 1 -o comm=

Ou você pode verificar a versão do systemd com o seguinte comando:

systemd --version

Se a saída for systemd, então systemd é seu sistema de inicialização e deve ter Ubuntu systemctl instalado. Porém, se a saída for init ou outro gerenciador de processo, significa que seu sistema usa um sistema de inicialização alternativo, e systemctl não funcionará a menos que você migre para systemd.

Se você vir sistemas de inicialização antigos como Upstart ou SysVinit e quiser migrar para systemd para usar systemctl, siga estas etapas:

1. Instale o systemctl instalando o systemd com o seguinte comando:

sudo apt install systemd-sysv

2. Reinicie seu sistema executando este comando:

sudo reboot

3. Verifique se seu sistema agora está usando o systemd:

ps -p 1 -o comm=

A saída deve mostrar systemd.

2. Garantindo que o systemd Está Instalado Corretamente

Em circunstâncias normais, quando o systemd está instalado e funcionando como seu sistema init, o comando systemctl deve funcionar corretamente. Se não funcionar, significa que o pacote systemd está ausente ou instalado incorretamente.

Observe que se você está usando uma versão mínima do Ubuntu, como um container Docker ou instância na nuvem, o systemd pode não ter sido instalado por padrão. Para instalar o systemctl instalando o systemd, execute os seguintes comandos:

sudo apt update
sudo apt install systemd

Após a instalação, verifique se o comando systemctl está disponível.

3. Verificando o PATH do systemctl

Um problema comum com o erro systemctl not found é que o systemctl pode estar instalado, mas não está no PATH do seu sistema. Para verificar se os binários do systemd existem em diretórios típicos como /bin, /usr/bin ou /usr/local/bin, você pode usar o seguinte comando:

which systemctl

Se o systemctl for encontrado em qualquer um dos seus diretórios listados em PATH, você deve receber uma saída assim:

/usr/bin/systemctl

Se o systemctl não for encontrado em nenhum dos diretórios em PATH, o comando which não retornará nada.

Porém, o systemctl pode não funcionar mesmo sendo encontrado em seus diretórios. Isso ocorre porque o systemctl pode estar localizado em um diretório que não está incluído no PATH. Nesta situação, você terá que verificar se o diretório onde o systemctl está localizado faz parte do seu sistema usando o seguinte comando:

echo $PATH

A saída deve ser algo assim:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Agora, tudo o que você precisa fazer é verificar se o diretório onde o systemctl reside (que você obteve do comando which) está incluído nos diretórios listados na saída do comando echo $PATH.

Se o diretório do systemctl não estiver incluído na saída do echo $PATH, você terá que adicioná-lo à sua variável PATH. Para isso, execute o seguinte comando:

Para Usuários do shell Bash, abra o arquivo ~/.bashrc em um editor de texto:

nano ~/.bashrc

Adicione a seguinte linha no final do arquivo:

export PATH=$PATH:/usr/bin

/usr/bin é um diretório típico onde o systemctl está localizado neste exemplo.

Agora, salve e feche o arquivo pressionando CTRL + X, depois Y para confirmar e Enter para salvar.

Para Utilizadores de Zsh, abra o arquivo ~/.zshrc em um editor de texto:

nano ~/.zshrc

Adicione a seguinte linha no final do arquivo:

export PATH=$PATH:/usr/bin

/usr/bin é um diretório típico onde o systemctl está localizado neste exemplo.

Agora, salve e feche o arquivo pressionando CTRL + X, depois Y para confirmar e Enter para salvar.

Depois de concluir as etapas acima, use o comando echo $PATH para verificar se o diretório do seu systemctl foi adicionado ao PATH. Agora você deve conseguir executar o systemctl sem receber o erro "systemctl: command not found".

4. Reinstalando systemd

Se as correções anteriores não funcionarem e você ainda estiver enfrentando o erro command not found, reinstalar o systemd completamente pode resolver o problema. Para isso, execute os seguintes comandos:

sudo apt purge systemd
sudo apt install systemd

Então, reinicie seu sistema com este comando:

sudo reboot

Verifique se o systemctl funciona.

5. Verificando se o systemd Está Configurado Corretamente

Às vezes, o problema pode ser tão simples quanto uma instalação mal configurada do systemd, resultando em um erro "systemctl: command not found". Para corrigir isso, basta executar o comando a seguir:

sudo dpkg-reconfigure systemd

6. Subsistema Windows Desatualizado para Linux (WSL)

Se você estiver usando Ubuntu em WSL (Subsistema Windows para Linux) saiba que versões antigas do WSL, como WSL 1, não suportam systemctl nativamente. Portanto, independentemente de qual das correções anteriores você usar, não conseguirá executar systemctl.

Se quiser usar os recursos do systemctl, terá que atualizar para WSL 2, que oferece melhor suporte para systemd. Se não tem certeza se está usando WSL, pode verificar com o seguinte comando:

uname -a

Se o resultado mencionar WSL, então é por isso que você está vendo o erro "systemctl: command not found".

7. Usando sudo service Como Alternativa ao systemctl

Se você está recebendo o erro "systemctl: command not found" porque o sistema não usa systemd, pode usar o comando sudo service para gerenciar serviços. Este comando funciona com sistemas init mais antigos como SysVinit ou Upstart. Isso é útil para sistemas Ubuntu que dependem de scripts init em vez de systemd.

Por exemplo, para iniciar um serviço, você executaria:

sudo service <service_name> start

Pensamentos Finais

O systemd e sua utilidade de linha de comando systemctl substituíram a maioria dos outros sistemas init mais antigos, como SysVinit e Upstart. Embora o systemd nem sempre agrade a todos devido ao seu design monolítico e falta de filosofia Unix, ainda é considerado a opção predominante. Esperamos que tenha conseguido resolver o erro "systemctl: command not found", pois não conseguir usar a utilidade de linha de comando do systemd limita bastante suas capacidades.

Perguntas Frequentes

O Que é systemctl e O Que Significa systemctl: Command Not Found?

systemctl é uma ferramenta de linha de comando usada para gerenciar serviços em sistemas Linux que executam systemd, como Ubuntu. O erro "systemctl: command not found" ocorre quando a ferramenta não está disponível ou acessível, geralmente porque o sistema não usa systemd ou o pacote systemd não está instalado.

O systemctl está disponível em todas as versões do Ubuntu?

Não, o systemctl não está disponível em todas as versões do Ubuntu. O systemctl faz parte do sistema init systemd, que é o padrão na maioria das versões modernas do Ubuntu (a partir da 15.04). Versões mais antigas ou certas instalações mínimas podem usar sistemas init alternativos, como SysVinit ou Upstart.

Compartilhar

Mais do blog

Continue lendo.

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud imagem de capa com painéis de apps ao redor de um painel Cosmos.
Servidores e SO

Melhores Apps Auto-hospedados que Você Pode Executar com Cosmos Cloud: Arquivos, Mídia, Senhas, Automação e Mais!

Depois que você configurou Cosmos Cloud e quer ver quais apps funcionam bem com ele, ou talvez ainda nem tenha decidido usar Cosmos e só quer ver como se encaixa no seu fluxo de trabalho

Nick PrataNick Prata leitura de 16 minutos
Portainer vs Cosmos Cloud para Gerenciar Apps Docker capa com diagrama de configuração híbrida e blocos de acesso vs operações neon.
Servidores e SO

Portainer vs Cosmos Cloud: A Melhor Opção para Gerenciamento de Apps Docker

Se você já conhece Docker e quer apenas um jeito mais limpo de executar uma pilha de apps em crescimento, aqui está a resposta curta sobre Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para o controle direto

Nick PrataNick Prata 14 min de leitura
Cosmos Cloud vs CasaOS vs Umbrel gráfico de recursos mostrando três caminhos auto-hospedados dentro de um mundo de rede em nuvem abstrata.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual Plataforma Auto-hospedada se Encaixa na Sua Configuração?

A resposta curta é que CasaOS ainda é o lugar mais fácil para começar, Umbrel tem o visual mais limpo e curado, e Cosmos Cloud faz mais sentido quando você quer controle mais apertado sobre seu domínio

Nick PrataNick Prata 11 minutos de leitura

Pronto para fazer o deploy? A partir de $2,48/mês.

Cloud independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Reembolso em 14 dias.