Pesquisa de site

Como listar todos os serviços em execução no Systemd no Linux


Os sistemas Linux fornecem uma variedade de serviços de sistema (como gerenciamento de processos, login, syslog, cron, etc.) e serviços de rede (como login remoto, e-mail, impressoras, hospedagem na web, armazenamento de dados , transferência de arquivos, resolução de nomes de domínio (usando DNS), atribuição dinâmica de endereços IP (usando DHCP) e muito mais).

Tecnicamente, um serviço é um processo ou grupo de processos (comumente conhecidos como daemons) em execução contínua em segundo plano, aguardando a chegada de solicitações (especialmente de clientes).

O Linux oferece suporte a diferentes maneiras de gerenciar (iniciar, parar, reiniciar, ativar a inicialização automática na inicialização do sistema, etc.) serviços, normalmente por meio de um processo ou gerenciador de serviços. A maioria, senão todas as distribuições Linux modernas agora usam o mesmo gerenciador de processos: systemd.

O que é Systemd?

Systemd é um gerenciador de sistemas e serviços para Linux; um substituto imediato para o processo init, que é compatível com os scripts de inicialização SysV e LSB, e o comando systemctl é a principal ferramenta para gerenciar systemd.

Por que listar serviços em execução no Linux?

Conhecer os serviços em execução no seu sistema Linux é vital por vários motivos. Ele permite monitorar a utilização de recursos, solucionar problemas e gerenciar o desempenho do sistema com eficiência. O Systemd simplifica esta tarefa oferecendo comandos poderosos para coletar informações sobre serviços ativos.

Neste guia, demonstraremos o processo de listar todos os serviços em execução no Systemd no Linux, fornecendo um passo a passo abrangente para usuários de todos os níveis de experiência.

Listando serviços em execução no SystemD no Linux

Quando você executa o comando systemctl sem nenhum argumento, ele exibirá uma lista de todas as unidades do systemd carregadas (leia a documentação do systemd para obter mais informações sobre as unidades do systemd), incluindo serviços, mostrando seu status (ativo ou não). ).

systemctl 

Listar todas as unidades no systemctl

Para listar todos os serviços carregados em seu sistema (sejam ativos; em execução, encerrados ou com falha), use o subcomando list-units e a opção --type com um valor de serviço.

systemctl list-units --type=service
OR
systemctl --type=service

E para listar todos os serviços carregados, mas ativos, tanto em execução quanto aqueles que foram encerrados, você pode adicionar a opção --state com um valor ativo, como segue.

systemctl list-units --type=service --state=active
OR
systemctl --type=service --state=active

Listar serviços em execução no systemctl

Mas para dar uma olhada rápida em todos os serviços em execução (ou seja, todos os serviços carregados e em execução ativa), execute o seguinte comando.

systemctl list-units --type=service --state=running 
OR
systemctl --type=service --state=running

Vamos explorar os principais termos relacionados às unidades Systemd e seu status:

  • Unidade – Uma unidade pode ser um serviço, um soquete, um dispositivo ou várias outras entidades.
  • Carregar – Indica se a unidade está carregada ou não. Uma unidade pode estar carregada, mas não necessariamente ativa.
  • Ativo – Mostra se a unidade está funcionando ativamente ou se encontrou problemas e está em estado de falha ou inativo.
  • SUB – Fornece detalhes adicionais sobre o estado específico da unidade. Para serviços, pode indicar se o serviço está em execução (em execução), interrompido (saiu) ou encontrando problemas (falhou).
  • Descrição – Ajuda os usuários a identificar e compreender a finalidade da unidade sem se aprofundar nos arquivos de configuração detalhados.

Crie um alias para systemctl

Se você usa frequentemente o comando anterior, você pode criar um comando de alias em seu arquivo ~/.bashrc conforme mostrado, para invocá-lo facilmente.

vim ~/.bashrc

Em seguida, adicione a seguinte linha na lista de aliases, conforme mostrado na captura de tela.

alias running_services='systemctl list-units  --type=service  --state=running'

Salve as alterações no arquivo e feche-o. De agora em diante, use o comando “running_services” para visualizar uma lista de todos os serviços carregados e em execução ativa em seu servidor.

running_services	#use the Tab completion 

Encontre uma porta em que um processo está escutando

Além disso, um aspecto importante dos serviços é o porto que utilizam. Para determinar a porta em que um processo daemon está escutando, você pode usar o comando netstat ou ss conforme mostrado.

Onde o sinalizador -l significa imprimir todos os soquetes de escuta, -t exibe todas as conexões TCP, -u mostra todas as conexões UDP, - n significa imprimir números de porta numéricos (em vez de nomes de aplicativos) e -p significa mostrar o nome do aplicativo.

netstat -ltup | grep zabbix_agentd
OR
ss -ltup | grep zabbix_agentd

A quinta coluna mostra o soquete: Endereço Local:Porta. Neste caso, o processo zabbix_agentd está escutando na porta 10050.

Listando serviços de firewall em execução

Além disso, se o seu servidor tiver um serviço de firewall em execução, que controla como bloquear ou permitir o tráfego de ou para serviços ou portas selecionados, você poderá listar os serviços ou portas que foram abertos no firewall, usando o firewall-cmd< ou comando ufw (dependendo das distribuições Linux que você está usando), conforme mostrado.

firewall-cmd --list-services   [FirewallD]
firewall-cmd --list-ports

sudo ufw status     [UFW Firewall]

É tudo por agora! Neste guia, demonstramos como visualizar serviços em execução no systemd no Linux. Também abordamos como verificar se o serviço de porta está escutando e como visualizar serviços ou portas abertas no firewall do sistema.

Você tem alguma adição a fazer ou perguntas? Se sim, entre em contato conosco usando o formulário de comentários abaixo.