Como verificar se um serviço está ativo no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar o status dos serviços em execução em um sistema Linux. Exploraremos diferentes métodos, começando com o comando moderno systemctl status, compreendendo sua saída e significado, mesmo em ambientes onde a execução direta é limitada.

Em seguida, você aprenderá como usar o comando mais antigo, mas ainda relevante, service para confirmar o status do serviço e, finalmente, verificar o processo em execução associado a um serviço usando o comando ps aux. Essa experiência prática o equipará com habilidades essenciais para monitorar e gerenciar serviços no Linux.

Verificar o status do serviço usando systemctl status

Nesta etapa, você aprenderá como verificar o status dos serviços do sistema usando o comando systemctl. Serviços são programas em segundo plano que são executados em seu sistema, como servidores web, servidores de banco de dados ou daemons de rede.

Embora você não possa usar diretamente o systemctl neste ambiente específico do LabEx (devido à execução em um contêiner Docker), entender como ele funciona é crucial para gerenciar serviços em um sistema Linux real. Vamos simular o conceito e mostrar o uso típico do comando.

Em um sistema Linux padrão usando systemd (que é comum em distribuições modernas como Ubuntu), você usaria systemctl status seguido pelo nome do serviço para verificar se um serviço está em execução, ativo ou com falha.

Por exemplo, para verificar o status do serviço ssh (que lida com logins remotos seguros), você normalmente executaria:

systemctl status ssh

A saída seria algo parecido com isto (os detalhes exatos podem variar):

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...
       Docs: man:sshd(8)
             man:ssh(1)
   Main PID: ... (sshd)
      Tasks: ... (limit: ...)
     Memory: ...
        CPU: ...
     CGroup: /system.slice/ssh.service
             └─... /usr/sbin/sshd -D

...

Coisas importantes a serem observadas na saída:

  • Loaded: Mostra se a configuração do serviço foi carregada corretamente.
  • Active: Indica o estado atual do serviço (por exemplo, active (running), inactive (dead), failed).
  • Main PID: O ID do processo do processo principal para o serviço.

Embora você não possa executar systemctl aqui, é importante conhecer este comando para gerenciar serviços em outros sistemas Linux.

Para simular a verificação do status de um serviço e praticar a execução de comandos, vamos usar echo novamente para imprimir uma mensagem indicando que você aprendeu sobre systemctl status.

Digite o seguinte comando em seu terminal:

echo "Learned about systemctl status"

Pressione Enter.

Este comando simplesmente confirma que você leu e entendeu o conceito de usar systemctl status.

Clique em Continuar para prosseguir.

Confirmar serviço com a saída do comando service

Nesta etapa, você aprenderá sobre outro comando usado para gerenciar serviços, o comando service. Este comando é frequentemente usado em sistemas que não usam systemd ou para compatibilidade com sistemas init mais antigos.

O comando service fornece uma interface mais simples para iniciar, parar, reiniciar e verificar o status dos serviços.

A sintaxe básica para verificar o status de um serviço usando o comando service é:

service <service-name> status

Semelhante ao systemctl, você substituiria <service-name> pelo nome real do serviço que deseja verificar.

Por exemplo, em um sistema onde o servidor web apache2 está instalado e gerenciado pelo comando service, você verificaria seu status assim:

service apache2 status

A saída normalmente indicaria se o serviço está em execução ou não.

Novamente, embora você não possa executar este comando diretamente neste ambiente LabEx devido à sua natureza em contêineres, entender o comando service é valioso para trabalhar com diferentes sistemas Linux.

Para confirmar que você aprendeu sobre o comando service, use o comando echo para imprimir uma mensagem de confirmação.

Digite o seguinte comando em seu terminal:

echo "Understood service command"

Pressione Enter.

Esta ação serve como um marcador de que você concluiu esta etapa e aprendeu sobre o comando service.

Clique em Continuar para passar para a próxima etapa.

Verificar o processo do serviço em execução com ps aux

Nesta etapa, você aprenderá como verificar se um serviço está em execução procurando seus processos associados usando o comando ps aux. Esta é uma maneira fundamental de ver quais programas estão sendo executados atualmente em seu sistema.

O comando ps relata um instantâneo dos processos atuais. As opções aux são comumente usadas para exibir processos para todos os usuários (a), incluindo aqueles que não estão conectados a um terminal (x), e para mostrar informações detalhadas em um formato amigável ao usuário (u).

Quando um serviço está em execução, ele normalmente tem um ou mais processos associados a ele. Você pode usar ps aux e canalizar sua saída para grep para filtrar processos relacionados a um serviço específico.

Por exemplo, para ver se há algum processo relacionado ao serviço ssh, você usaria:

ps aux | grep ssh

Vamos tentar isso em nosso ambiente LabEx. Sabemos que o próprio terminal é um processo em execução. Vamos usar ps aux para encontrar o processo para nosso shell zsh.

Digite o seguinte comando em seu terminal:

ps aux | grep zsh

Pressione Enter.

Você deve ver uma saída semelhante a esta:

labex       ...  ...  ...  ... ?        Ss   ... ...:.. /usr/bin/zsh
labex       ...  ...  ...  ... ?        S+   ... ...:.. grep --color=auto zsh

A primeira linha mostra o processo zsh (seu shell de terminal) e a segunda linha mostra o comando grep que você acabou de executar (que também é um processo!).

Este método (ps aux | grep <service-name>) é uma maneira poderosa de confirmar se um serviço está realmente em execução, verificando seus processos ativos, especialmente quando os comandos systemctl ou service podem não estar disponíveis ou fornecer detalhes suficientes.

Para concluir esta etapa, use echo para confirmar que você praticou o uso de ps aux com grep.

Digite o seguinte comando:

echo "Practiced ps aux with grep"

Pressione Enter.

Clique em Continuar para finalizar o laboratório.

Resumo

Neste laboratório, você aprendeu como verificar o status dos serviços no Linux usando vários métodos. Você foi apresentado ao comando systemctl status, que é a maneira padrão de verificar o status do serviço em sistemas Linux modernos usando systemd, embora a execução direta tenha sido simulada devido ao ambiente do laboratório. Você também aprendeu como confirmar o status do serviço usando o comando service mais antigo e como verificar um processo de serviço em execução examinando a lista de processos com ps aux. Essas etapas fornecem uma abordagem abrangente para determinar se um serviço específico está ativo e em execução em um sistema Linux.