Como Listar Serviços em Execução no Linux: Um Guia Completo para Todos os Sistemas Init

2025-02-12 · Atualizado 2026-07-06

Resposta Rápida: Como Listar Serviços em Execução no Linux

Para listar os serviços em execução no Linux, use um destes comandos, conforme o seu sistema init:

  • systemd (Ubuntu 24.04, Debian 12, CentOS/RHEL 9, Fedora 40+ e a maioria das distros modernas em 2026):
    systemctl list-units --type=service --state=running
    
    Ou, para listar todas as unidades de serviço, independentemente do estado:
    systemctl --type=service
    
  • SysVinit / sistemas mais antigos (ou para incluir scripts init legados):
    service --status-all
    

O systemd é o sistema init padrão em praticamente todas as distribuições Linux populares da atualidade, então o systemctl list-units --type=service --state=running é a resposta na grande maioria dos casos. Ele exibe uma tabela dos serviços atualmente ativos com os respectivos estados LOAD, ACTIVE e SUB. Se o systemctl não for encontrado, é porque o seu sistema não usa o systemd — nesse caso, recorra ao service --status-all (SysVinit) ou ao rc-status (OpenRC).

O restante deste guia explica cada método em detalhes, incluindo como filtrar por estado, verificar os serviços que iniciam com o sistema e localizar serviços por porta.

Introdução

Os serviços do Linux são processos em segundo plano que rodam continuamente para executar tarefas do sistema, como gerenciar redes, tratar os logins dos usuários ou rodar servidores web. Esses serviços podem ser gerenciados por meio de várias ferramentas, conforme a distribuição Linux e o sistema init em uso. Em 2026, o systemd é o sistema init padrão em quase todas as principais distribuições, então a maior parte deste guia se concentra no comando systemctl.

Saber como listar os serviços em execução é essencial para administradores de sistemas e desenvolvedores. Isso ajuda em:

  • Solução de problemas – Verificar se um serviço crítico está em execução ou se falhou.
  • Monitoramento de desempenho – Identificar os serviços que consomem muitos recursos.
  • Auditoria de segurança – Garantir que apenas os serviços necessários estejam ativos.

Usando systemctl (Para Sistemas Baseados em Systemd)

A maioria das distribuições Linux modernas usa o systemd como sistema init. Isso inclui versões atuais de 2026, como Ubuntu (da 16.04 à 24.04 LTS e posteriores), Debian (do 8 ao 12 "Bookworm" e posteriores), Fedora (40+), CentOS Stream / RHEL / Rocky Linux / AlmaLinux (do 7 ao 9 e posteriores) e openSUSE. O comando systemctl é a principal ferramenta para gerenciar e listar serviços em todos esses sistemas.

Verificando o Status de um Serviço Específico

Para verificar se um determinado serviço está em execução, use:

systemctl status <service-name>

Por exemplo, para verificar se o servidor web nginx está em execução:

systemctl status nginx

A saída mostrará se o serviço está ativo (em execução), inativo ou com falha, além dos logs para depuração.

Listando Todos os Serviços Ativos

Para listar todos os serviços em execução, use:

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

Este comando exibe uma tabela com todos os serviços atualmente em execução, junto com o status de cada um.

Listando Todos os Serviços (Incluindo os Inativos)

Se você quiser ver todos os serviços, estejam eles em execução ou não:

systemctl list-units --type=service

Isso incluirá os serviços que estão ativos, inativos, com falha ou em outros estados.

Filtrando Serviços por Estado

Você pode filtrar os serviços pelo estado deles usando:

systemctl list-units --type=service --state=failed

Isso listará apenas os serviços com falha, o que pode ser útil na solução de problemas.

Listando Serviços Habilitados na Inicialização

Para verificar quais serviços estão configurados para iniciar automaticamente junto com o sistema:

systemctl list-unit-files --type=service | grep enabled

Exemplo de Saída

Uma saída típica do systemctl list-units --type=service --state=running pode ser parecida com esta:

UNIT                        LOAD   ACTIVE SUB     DESCRIPTION
cron.service                loaded active running Regular background program processing daemon
networking.service          loaded active running Raise network interfaces
ssh.service                 loaded active running OpenBSD Secure Shell server
systemd-logind.service      loaded active running Login Service

Resumo

  • Use systemctl status <service> para verificar o status de um único serviço.
  • Use systemctl list-units --type=service --state=running para listar os serviços ativos.
  • Use systemctl list-units --type=service para ver todos os serviços.
  • Use systemctl list-unit-files --type=service para ver os serviços habilitados na inicialização.

Usando ps e grep para Processos em Execução

Se você quiser listar os serviços em execução sem depender do systemctl ou de outras ferramentas de gerenciamento de serviços, pode usar o ps (status de processos) junto com o grep para encontrar processos específicos.

Esse método é útil quando:

  • Você está trabalhando em um sistema Linux enxuto, que não tem os comandos systemctl ou service.
  • Você quer verificar se um determinado processo está em execução, independentemente do sistema init.

Listando Todos os Processos em Execução

O comando ps aux exibe todos os processos em execução no sistema:

ps aux

Isso gerará uma lista extensa de todos os processos em execução, incluindo os IDs de processo (PIDs), o uso de CPU, o uso de memória e o nome dos comandos.

Buscando um Serviço Específico

Para verificar se um determinado serviço está em execução, use ps aux | grep <service-name>:

ps aux | grep nginx

Isso exibirá as linhas que contêm "nginx", indicando se ele está em execução. A saída pode ser parecida com esta:

root      1034  0.0  0.3  49536  3412 ?        Ss   12:34   0:00 nginx: master process /usr/sbin/nginx
www-data  1035  0.0  0.2  49536  2824 ?        S    12:34   0:00 nginx: worker process
user      2045  0.0  0.0  14856   900 pts/0    S+   12:35   0:00 grep --color=auto nginx

Nesse exemplo:

  • As duas primeiras linhas indicam que o serviço nginx está em execução.
  • A última linha (grep --color=auto nginx) é o próprio comando grep. Você pode excluí-la usando:
ps aux | grep nginx | grep -v grep

Exibindo Processos em Formato Hierárquico

Para uma visualização mais estruturada, use:

ps fax

Isso mostra uma estrutura em árvore dos processos em execução, o que facilita identificar quais serviços estão rodando e quais são os seus processos filhos.

Encontrando Serviços por Porta

Se você suspeitar que um serviço está rodando em uma porta específica, mas não souber o nome dele, use:

netstat -tulnp | grep :80

ou, se o netstat não estiver disponível:

ss -tulnp | grep :80

Isso listará o processo que está usando a porta 80 (comumente usada por servidores web como o Nginx ou o Apache).

Resumo

  • Use ps aux para listar todos os processos em execução.
  • Use ps aux | grep <service-name> para verificar um serviço específico.
  • Use ps fax para uma visualização em árvore dos processos.
  • Use netstat -tulnp ou ss -tulnp para encontrar serviços rodando em portas específicas.
Como Listar Serviços em Execução no Linux

FAQ (Perguntas Frequentes)

1. Como faço para verificar se um serviço está em execução no Linux?

Você pode usar métodos diferentes conforme a sua distribuição Linux:

  • Para sistemas baseados em systemd:
    systemctl status <service-name>
    
  • Para sistemas baseados em SysVinit:
    service <service-name> status
    
  • Usando ps e grep:
    ps aux | grep <service-name>
    

2. Como faço para listar todos os serviços em execução?

  • Para sistemas baseados em systemd:
    systemctl list-units --type=service --state=running
    
  • Para sistemas baseados em SysVinit:
    service --status-all
    
  • Usando o comando ps:
    ps aux
    

3. Como posso verificar se um serviço inicia junto com o sistema?

  • Para systemd:
    systemctl is-enabled <service-name>
    
  • Para SysVinit (sistemas baseados em RHEL):
    chkconfig --list <service-name>
    

4. Como reiniciar um serviço?

  • Para sistemas baseados em systemd:
    sudo systemctl restart <service-name>
    
  • Para sistemas baseados em SysVinit:
    sudo service <service-name> restart
    

5. Como parar ou desabilitar um serviço?

  • Para parar um serviço temporariamente:
    sudo systemctl stop <service-name>
    
  • Para impedir que um serviço inicie junto com o sistema:
    sudo systemctl disable <service-name>
    

6. Como posso descobrir qual serviço está usando uma porta específica?

Você pode usar o netstat ou o ss para encontrar os serviços em execução em uma porta específica:

netstat -tulnp | grep :80

ou

ss -tulnp | grep :80

7. E se o systemctl não for encontrado?

Se você receber um erro como command not found: systemctl, é sinal de que o seu sistema pode não estar usando o systemd. Tente usar:

service --status-all

ou

ps aux | grep <service-name>

8. Como listar os serviços com falha?

Em sistemas baseados em systemd, execute:

systemctl list-units --type=service --state=failed

9. Como habilitar os logs de um serviço específico?

Para consultar os logs de um serviço gerenciado pelo systemd, use:

journalctl -u <service-name>

Para acompanhar os logs em tempo real:

journalctl -u <service-name> -f

10. Posso usar o top ou o htop para ver os serviços em execução?

Sim! O top e o htop oferecem uma visualização ao vivo dos processos em execução:

  • Use o top:
    top
    
  • Use o htop (interativo e fácil de usar):
    htop
    
    (Instale com sudo apt install htop ou sudo yum install htop caso não esteja disponível.)