Listando os serviços Linux com o Systemctl

No Linux lidamos diariamente com serviços, que são programas executados em segundo plano (background). Neste material apresento a utilização do systemctl para listar os serviços, além de verificar o status deles.

[ Hits: 42.085 ]

Por: Diego Mendes Rodrigues em 13/11/2021 | Blog: https://www.linkedin.com/in/diegomendesrodrigues/


Listando os serviços Linux com o Systemctl



No Linux, um serviço é um programa executado em segundo plano. Os serviços podem ser iniciados sob demanda, ou no momento da inicialização do sistema.

Caso você esteja usando o Linux como seu sistema operacional primário, ou como plataforma de desenvolvimento, lidará com diferentes tipos de serviços, como por exemplo o servidor web, ssh ou cron. Saber como listar os serviços em execução, ou verificar o status de um serviço, é importante ao analisar e depurar problemas do sistema.

A maioria das distribuições recentes do Linux utiliza o [B]systemd[/B] como sistema init padrão, além de gerenciador dos serviços.

O systemd é um conjunto de ferramentas para o gerenciamento dos sistemas Linux. É usado para inicializar a máquina, gerenciar serviços, montar sistemas de arquivos automaticamente, registrar eventos, configurar o nome do host, dentre outras tarefas do sistema.

Este material explica como listar serviços no Linux.

Listagem de serviços do Linux

O systemd usa o conceito de unidades, que podem ser serviços, soquetes, pontos de montagem, dispositivos, etc. As unidades são definidas usando arquivos de texto no formato ini. Esses arquivos incluem informações sobre a unidade, suas configurações e comandos a serem executados. As extensões de nome de arquivo definem o tipo de arquivo da unidade. Por exemplo, os arquivos da unidade de serviço do sistema têm uma extensão .service.

Systemctl é um utilitário de linha de comando usado para controlar o systemd e gerenciar serviços. Faz parte do ecossistema systemd e está disponível por padrão em todos os sistemas.

Para obter uma lista de todas as unidades de serviço carregadas, digite:

sudo systemctl list-units --type service

O resultado será do tipo:

UNIT     LOAD     ACTIVE     SUB         DESCRIPTION
cron.service loaded   active running Regular background program processing daemon
...


Cada linha de saída contém as seguintes colunas da esquerda para a direita:
  • UNIT - o nome da unidade de serviço.
  • LOAD - informação sobre se o arquivo da unidade que foi carregado na memória.
  • ACTIVE - o estado de ativação do arquivo da unidade de alto nível, que pode ser ativo, recarregando, inativo, com falha, ativando, desativando. É uma generalização da coluna SUB.
  • SUB - o estado de ativação do arquivo de unidade de nível inferior. O valor deste campo depende do tipo de unidade. Por exemplo, uma unidade do tipo serviço pode estar em um dos seguintes estados: inativo, encerrado, com falha, inativo ou em execução.
  • DESCRIPTION - breve descrição do arquivo da unidade.

Por padrão, o comando lista apenas as unidades ativas carregadas. Para ver as unidades carregadas, mas também inativas, passe a opção --all:

sudo systemctl list-units --type service --all

Se você quiser ver todos os arquivos da unidade instalados, não apenas os carregados, use:

sudo systemctl list-unit-files

Exibindo Status do Serviço

Para verificar o status de um serviço, use o comando systemctl status:

sudo systemctl status <service_name>.service

Onde <service_name> é o nome da unidade de serviço que você deseja verificar. Por exemplo, para determinar o status atual do serviço nginx, você executaria:

sudo systemctl status nginx.service

Observação: você pode omitir o sufixo ".service": systemctl status nginx é o mesmo que systemctl status nginx.service

O resultado será do tipo:

● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2021-12-23 18:13:50 UTC; 15s ago
       Docs: man:nginx(8)
    Process: 3263057 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 3263065 (nginx)
      Tasks: 2 (limit: 470)
     Memory: 6.0M
     CGroup: /system.slice/nginx.service
             ├─3061064 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
             └─3061065 nginx: worker process

Dec 23 18:13:59 drsolutions.dev systemd[1]: Starting A high performance web server and a reverse proxy server...


O comando acima imprimirá as seguintes informações:
  • Loaded - se a unidade de serviço foi carregada e o caminho completo para o arquivo da unidade. Também mostra se a unidade está habilitada para iniciar no momento da inicialização.
  • Active - se o serviço está ativo e em execução. Se o seu terminal suportar cores e o serviço estiver ativo e em execução, o ponto (●) e a parte "active (running)" serão impressos em verde. A linha também mostra por quanto tempo o serviço está em execução.
  • Docs - a documentação do serviço.
  • Process - informações sobre os processos de serviço.
  • Main PID - o PID de serviço.
  • Tasks - o número de tarefas contabilizadas para a unidade e o limite de tarefas.
  • Memory - informações sobre a memória usada.
  • CGroup - informações sobre grupos de controle relacionados.

Caso você deseje apenas verificar o status do serviço, use o comando systemctl is-active. Por exemplo, para verificar se o serviço nginx está em execução, você executaria:

systemctl is-active nginx.service

O resultado será do tipo:

active

O comando anterior mostrará o status do serviço. Se o serviço estiver ativo, o comando retorna um status de saída 0, o que pode ser útil ao usar o comando dentro de scripts do shell.

Conclusões

Mostrei nesse material como usar o comando systemctl para listar os serviços do Linux e verificar o seu status.

Se você tiver alguma dúvida ou feedback, sinta-se à vontade para comentar, ou fazer sua pergunta.

   

Páginas do artigo
   1. Listando os serviços Linux com o Systemctl
Outros artigos deste autor

Pop!_OS Linux - Uma boa distribuição baseada no Ubuntu

Principais novidades do Linux Mint 20 Ulyana

Instalar o TeamViewer no Ubuntu/Debian

Usar o apt-get e o apt

Instalar o Ubuntu Server

Leitura recomendada

Entendendo a estrutura do Linux

Porque se aventurar no Linux (parte 2) - Instalei, e agora?

Instalação dual boot com 2 HDs com Windows XP e Ubuntu Linux

Iniciação no Linux sem medo usando VMWare

Lógica para computação - parte II

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts