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: 41.074 ]

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

Instalar o Microsoft SQL Server no Debian e no Ubuntu

Firewall com o UFW

Instalando Adicionais para Convidados para VirtualBox no Debian, Linux Mint e Ubuntu

Configurar um servidor FTP com o vsFTPd no Raspberry Pi

Ubuntu 18.04 LTS - LAMP - Linux, Apache, MySQL ou MariaDB, PHP 7.2

Leitura recomendada

Analisando processos em seu GNU/Linux

Usa Firefox? Expanda-o

Reconhecimento se obtém por mérito e não por força

Migrando para Linux sem medo (parte 2)

Sim! Outro artigo na linha "Por onde começo?"

  
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