50% de desconto todos os planos, por tempo limitado. Começando em $2.48/mo
Faltam 7 minutos
Servidores e SO

Como corrigir systemctl: erro de comando não encontrado no Ubuntu

Nick Prata By Nick Prata 7 minutos de leitura Atualizado em 20 de fevereiro de 2025
como consertar systemctl: comando não encontrado

Uma das ferramentas mais poderosas e úteis para usuários de Linux, especialmente distros modernas como o Ubuntu, é o comando systemctl. Este utilitário de linha de comando é normalmente usado para interagir com o systemd, o sistema e o gerenciador de serviços.

Através do comando, você pode gerenciar os serviços do sistema, visualizar seu status, iniciá-los ou interrompê-los e ativá-los e desativá-los na inicialização do sistema. Muito útil, certo? Mas se o comando systemctl não for encontrado ou reconhecido, você enfrentará o “sudo:systemctl: comando não encontrado” erro.

Então, vamos falar sobre o que significa o erro “systemctl: comando não encontrado”, os vários motivos pelos quais você está enfrentando esse erro e como corrigi-lo.

O que significa systemctl: Comando não encontrado?

Simplificando, o erro “systemctl: comando não encontrado” significa que o utilitário de linha de comando systemctl não está disponível ou acessível no ambiente atual. Isso pode ser devido a uma série de razões, todas relacionadas ao fato de o ambiente não ser do sistema ou de o pacote systemd não estar instalado no sistema.

Basicamente, o pacote systemd não está instalado ou sua distribuição ou versão Linux não usa systemd; em vez disso, ele usa sistemas de gerenciamento de serviços mais antigos, como init.d. Uma outra possibilidade é que a variável de ambiente PATH não inclua o diretório onde o 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 com seu sistema, levando ao erro “systemctl: comando não encontrado”, vamos ver como você pode verificar onde está o seu problema e como corrigi-lo.

Corrigindo o systemctl: erro de comando não encontrado

Nas etapas a seguir, verificaremos se o seu sistema possui o systemd instalado e usa systemctl ou não, bem como verificar o caminho do systemctl. Depois de verificarmos o problema, tomaremos as medidas necessárias para corrigir o erro.

1. Verificando se o seu sistema usa systemd

Como o Ubuntu systemctl só pode ser usado se você tiver o pacote systemd instalado, primeiro vamos verificar se o seu sistema deve usar o systemd executando o seguinte comando:

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 é o seu sistema init e deve ter o Ubuntu systemctl instalado. No entanto, se a saída for init ou outro gerenciador de processos, significa que seu sistema está usando um sistema de inicialização alternativo e o systemctl não funcionará a menos que você migre para o systemd.

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

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

sudo apt install systemd-sysv

2. Reinicie seu sistema executando este comando:

sudo reboot

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

ps -p 1 -o comm=

A saída deve ser systemd agora.

2. Garantir que o systemd esteja instalado corretamente

Em circunstâncias normais, quando o systemd está instalado e sendo executado como seu sistema init, o comando systemctl deve funcionar corretamente. Caso contrário, isso significa que o pacote systemd está ausente ou instalado incorretamente.

Observe que se você estiver usando uma versão mínima do Ubuntu, como um contêiner Docker ou uma instância de nuvem, o systemd pode não ter sido instalado por padrão. Para instalar o systemctl por meio da instalação do systemd, execute os seguintes comandos:

sudo apt update
sudo apt install systemd

Depois de instalado, verifique se o comando systemctl está disponível.

3. Verificando o PATH do systemctl

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

which systemctl

Se systemctl for encontrado em qualquer um dos diretórios listados em PATH, você deverá obter uma saída como esta:

/usr/bin/systemctl

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

No entanto, systemctl ainda pode não funcionar, mesmo que seja encontrado em seus diretórios. Isso ocorre porque 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 que você precisa fazer é verificar se o diretório em que 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 de echo $PATH, você terá que adicioná-lo à sua variável PATH. Para fazer isso, você terá que executar 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 systemctl está localizado neste exemplo.

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

Para Usuários 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 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 seu PATH. Agora, você deve conseguir executar o systemctl sem encontrar o erro “systemctl: comando não encontrado”.

4. Reinstalando o systemd

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

sudo apt purge systemd
sudo apt install systemd

Em seguida, 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: comando não encontrado”. Tudo que você precisa fazer para corrigir esse problema é executar o seguinte comando e pronto:

sudo dpkg-reconfigure systemd

6. Subsistema Windows desatualizado para Linux (WSL)

Se você estiver usando o Ubuntu em WSL (subsistema Windows para Linux) você deve saber que as versões mais antigas do WSL, como WSL 1, não oferecem suporte nativo ao systemctl, portanto, não importa qual das correções anteriores você use, você não conseguirá executar o systemctl.

Se quiser aproveitar as vantagens das funções do systemctl, você terá que atualizar para WSL 2, que tem melhor suporte para systemd. Se não tiver certeza se está ou não usando WSL, você pode verificar usando o seguinte comando:

uname -a

Se a saída mencionar WSL, é por isso que você está vendo o erro “systemctl: comando não encontrado”.

7. Usando o serviço sudo como alternativa ao systemctl

Se você estiver enfrentando o erro “systemctl: comando não encontrado” porque seu sistema não usa systemd, você 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 de inicialização em vez de systemd.

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

sudo service <service_name> start

Considerações Finais

systemd e seu utilitário de linha de comando systemctl substituíram a maioria dos outros sistemas init mais antigos, como SysVinit e Upstart. Embora o systemd possa não agradar a todos devido ao seu design monolítico e à filosofia não-Unix, o systemd ainda é geralmente considerado a escolha predominante. Então, esperançosamente, você conseguiu resolver o erro de comando systemctl não disponível, pois não ser capaz de usar o utilitário de linha de comando do systemd limita severamente seus recursos.

Perguntas frequentes

O que é systemctl e o que significa systemctl: comando não encontrado?

systemctl é uma ferramenta de linha de comando usada para gerenciar serviços em sistemas Linux executando systemd, como Ubuntu. O erro “systemctl: comando não encontrado” ocorre quando a ferramenta não está disponível ou acessível, geralmente porque o sistema não usa o 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. systemctl faz parte do sistema init systemd, que é o padrão na maioria das versões modernas do Ubuntu (de 15.04 em diante). 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.

Os melhores aplicativos auto-hospedados que você pode executar com a imagem da capa do Cosmos Cloud com painéis de aplicativos em torno de um painel do Cosmos.
Servidores e SO

Os melhores aplicativos auto-hospedados que você pode executar com o Cosmos Cloud: arquivos, mídia, senhas, automação e muito mais!

Talvez você tenha configurado o Cosmos Cloud e agora queira ver quais aplicativos combinam bem com ele, ou talvez você ainda nem tenha decidido sobre o Cosmos e só queira ver se ele se adapta bem ao seu trabalho.

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

Portainer vs Cosmos Cloud: melhor opção para gerenciamento de aplicativos Docker

Se você já conhece o Docker e deseja apenas uma maneira mais limpa de executar uma pilha de aplicativos crescente, aqui está a resposta curta para Portainer vs Cosmos Cloud. Portainer é a escolha mais forte para direção

Nick PrataNick Prata 14 minutos de leitura
Gráfico de recurso Cosmos Cloud vs CasaOS vs Umbrel mostrando três caminhos auto-hospedados dentro de um mundo abstrato de rede em nuvem.
Servidores e SO

Cosmos Cloud vs CasaOS vs Umbrel: Qual plataforma auto-hospedada se adapta à sua configuração?

A resposta curta é que o CasaOS ainda é o lugar mais fácil para começar, o Umbrel tem a sensação de curadoria mais limpa e o Cosmos Cloud faz mais sentido quando você deseja um controle mais rígido sobre o doma.

Nick PrataNick Prata 11 minutos de leitura

Pronto para implantar? A partir de $ 2,48 / mês.

Nuvem independente, desde 2008. AMD EPYC, NVMe, 40 Gbps. Devolução do dinheiro em 14 dias.