systemctl: Controle total no Linux em 12 etapas

systemctl 12 comandos que dominam o Linux

systemctl: 12 comandos que dominam o Linux 🚀

O comando systemctl tem vários recursos que muitas vezes são ignorados. Além de iniciar e parar serviços no Linux, você também pode listar serviços instalados e verificar seu status. Vamos fazer uma revisão rápida! 🚀

O que é o comando Systemctl?

O comando systemctl é a ferramenta de gerenciamento central do sistema systemd init, conhecido principalmente como a ferramenta usada para iniciar e parar serviços. Mas há muito mais, como evidenciado por sua página de manual que tem mais de 1600 linhas. 📖

Como o systemctl é uma ferramenta de gerenciamento, não apenas um iniciador de serviços, você pode usá-lo para acessar informações úteis sobre seu sistema e seus serviços systemd. 💻

A maioria das distribuições Linux adotou o systemd, mas algumas optaram por manter o sistema init tradicional SystemV. Se você não tiver certeza de qual sua distribuição usa, é fácil descobrir. Usaremos o comando stat para examinar o arquivo init.

estado /sbin/init 
Usando o comando stat para ver se uma instalação do Linux usa SystemV ou systemd.

O arquivo executável /sbin/init é o primeiro processo iniciado em distribuições baseadas em SystemV. Em distribuições baseadas em systemd, um link simbólico com esse nome aponta para o systemd.

A primeira linha de saída nos mostra que nesta máquina de teste do Ubuntu, /sbin/init é um link simbólico para o arquivo /lib/systemd/systemd. Claramente, esta instalação do Linux usa o systemd. Se fosse uma distribuição baseada em SystemV, a linha conteria apenas “Arquivo: /sbin/init”.

Interrogando serviços com systemctl

Os serviços são definidos em arquivos de unidade, e você verá a palavra unidade espalhada nas opções do systemctl. Como exemplo, podemos obter uma lista de serviços com o comando list-units usando a opção –type.

systemctl lista-unidades --tipo=serviço
A saída do comando systemctl list-units, mostrando serviços em execução e interrompidos.

A saída é exibida no visualizador de arquivos less, permitindo que você navegue e use a tecla / para pesquisar.

  • Unidade: O nome do arquivo da unidade.
  • Carregar: Se o arquivo da unidade de serviço foi lido na memória sem erros de sintaxe, esta coluna conterá “carregado”. Isso não significa que o serviço esteja ativo.
  • Ativo: Uma visão geral sobre se um serviço está ativo. Um serviço ativo pode não estar em execução.
  • Sub: Uma visão mais detalhada sobre se um serviço está em execução. Por exemplo, um serviço ativo pode estar agendado para um temporizador e pode ter saído de sua última execução.
  • Descrição: Uma linha de texto destinada a identificar ou descrever o serviço.

A exibição inclui apenas serviços ativos. Para ver todos os serviços, precisamos incluir a opção –all.

systemctl lista-unidades --todos --tipo=serviço
A saída do comando systemctl list-units, mostrando todos os serviços.

Se visualizar tudo for muito trabalhoso, podemos filtrar a saída com a opção –state.

systemctl lista-unidades --tipo=serviço --estado=em execução
A saída do comando systemctl list-units, filtrada para mostrar apenas serviços em execução.

A opção de estado aceitará em execução, parado, habilitado, desabilitado e com falha.

Para focar em serviços com falha, use a opção –failed.

systemctl lista-unidades --falha
A saída do comando systemctl list-units, filtrada para mostrar apenas serviços com falha. Não há serviços com falhas.

Não há unidades com falha neste computador.

Se você observar algum serviço com falha, use a opção list-dependencies para verificar se há dependências não atendidas.

systemctl lista-dependências sshd.service
A saída do comando systemctl list-dependencies mostrando as dependências do serviço sshd.

As dependências têm um círculo codificado por cores representando seu status. Poderia ser:

  • Círculo Branco: Inativo ou em manutenção
  • Ponto Verde: Ativo.
  • Ponto Branco: Desativando.
  • Ponto vermelho: Falha ou erro.

Para verificar se um único serviço está habilitado, use o comando is-enabled e forneça o nome do arquivo de unidade do serviço.

systemctl es-htg-example.service habilitado
Usar systemctl is-enabled para determinar se um serviço específico está habilitado.

Controlando serviços com systemctl

Usar systemctl para gerenciar serviços é muito simples e segue o formato dos comandos que vimos até agora. A maior diferença é que você precisará usar sudo para fazer alterações nos estados dos serviços. Não fizemos isso até agora, porque apenas reportamos o status dos serviços.

Para iniciar um serviço, use o comando start seguido do nome do serviço.

suor systemctl começar htg-exemplo.serviço
Iniciando um serviço com o comando systemctl start.

Se tudo correr bem, você retornará silenciosamente ao prompt de comando. Se preferir uma confirmação positiva, você pode verificá-la com o comando status.

suor systemctl status htg-exemplo.serviço
Verificando o status de um serviço com o comando systemctl status.

Interromper um serviço é tão fácil quanto iniciá-lo.

suor systemctl parar htg-exemplo.serviço
Parando um serviço com o comando systemctl stop.

Você pode reiniciar um serviço sem precisar passar pelo processo de duas etapas: interrompê-lo e iniciá-lo. Ele comando de reinicialização faz tudo por você.

suor systemctl reiniciar htg-exemplo.serviço
Reiniciando um serviço com o comando systemctl restart.

Se você quiser que um serviço inicie na inicialização, você precisa habilitá-lo.

suor systemctl habilitar htg-exemplo.serviço
Habilitando um serviço com o comando systemctl enable.

Observe que isso apenas marca o serviço para iniciar na inicialização, não o inicia imediatamente. Se é isso que você quer, adicionei a opção –now.

suor systemctl habilitar --agora htg-exemplo.serviço
Habilitar e iniciar um serviço ao mesmo tempo com o comando systemctl enable --now.

Quando você não precisar mais que um serviço seja iniciado na inicialização, desative-o.

suor systemctl desabilitar htg-exemplo.serviço
Desabilitando um serviço com o comando systemctl disable.

Você pode usar o comando journalctl, outra parte do systemd, para procurar entradas relacionadas ao seu serviço. A opção -u (unidade) permite que você especifique o serviço no qual está interessado. Com a opção -S (desde), você pode exibir entradas que ocorreram desde o momento fornecido.

diárioctl -S "08:00:00" -ou htg-exemplo.serviço
Usando o comando journalctl para exibir entradas de log do sistema relacionadas a um serviço específico.

Qualquer ferramenta que te ajude obter informações sobre a operação os detalhes internos da sua distribuição Linux serão inestimáveis, tanto para o gerenciamento diário quanto para solução de problemas e diagnóstico. O comando systemctl não é uma ferramenta única. É mais como uma caixa de ferramentas especializada e vale a pena se familiarizar com ela. 🔧🛠️

5 1 votar
Classificação do artigo
Inscrever-se
Notificar de
convidado

0 Comentários
mais antigo
Mais recente Mais votados
Comentários on-line
Ver todos os comentários