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 nome de domínio (usando DNS), atribuição de endereço IP dinâmico (usando DHCP) e muito mais).
Tecnicamente, um serviço é um processo ou grupo de processos (comumente conhecido 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, reinicie, habilite a inicialização automática na inicialização do sistema, etc.) serviços, normalmente por meio de um processo ou gerenciador de serviço. A maioria, senão todas as distribuições Linux modernas agora usam o mesmo gerenciador de processos: systemd.
Leia também: A história por trás de init e systemd: Por que init precisa ser substituído por systemd em Linux
Systemd é um gerenciador de sistema e serviço para Linux; uma substituição drop-in para o processo init, que é compatível com scripts init SysV e LSB e o comando systemctl é a principal ferramenta para gerenciar o systemd.
Neste guia, demonstraremos como listar todos os serviços em execução no systemd no Linux.
Listando os serviços em execução no SystemD no Linux
Quando você executa o comando systemctl sem nenhum argumento, ele exibe 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 (sejam ativos ou não).
# systemctl
Para listar todos os serviços carregados em seu sistema (sejam ativos; em execução, saiu ou falhou, use o subcomando list-units e --type
alternar com um valor de serviço.
# systemctl list-units --type=serviceOR# systemctl --type=service
E para listar todos os serviços carregados, exceto ativos, tanto em execução quanto aqueles que foram encerrados, você pode adicionar a opção --state
com um valor de ativo, da seguinte maneira.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Mas para obter uma visão rápida de 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
Se você usa frequentemente o comando anterior, pode criar um comando alias em seu arquivo ~ / .bashrc conforme mostrado, para invocá-lo facilmente.
# vim ~/.bashrc
Em seguida, adicione a seguinte linha na lista de apelidos, 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. E de agora em diante, use o comando “running_services” para ver uma lista de todos os serviços carregados e ativamente em execução em seu servidor.
# running_services#use the Tab completion
Além disso, um aspecto importante dos serviços é a porta que usam. Para determinar a porta em que um processo daemon está escutando, você pode usar as ferramentas netstat ou ss conforme mostrado.
Onde o sinalizador -l
significa imprime 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_agentdOR# ss -ltup | grep zabbix_agentd
O a quinta coluna mostra o soquete: Endereço Local: Porta. Neste caso, o processo zabbix_agentd está escutando na porta 10050.
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 selecionadas, você pode listar serviços ou portas que foram abertas no firewall, usando o comando firewall-cmd ou ufw (dependendo das distribuições Linux que você está usando), conforme mostrado.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status