Domine o Systemd: Liste Serviços Ativos, Inativos e Todos!

A maioria das distribuições Linux modernas utiliza o Systemd, um sistema de inicialização que gerencia serviços através da ativação e desativação de arquivos de “serviço”. Se você precisa listar esses arquivos, o comando systemctl é a ferramenta essencial.

Este guia detalha diversas maneiras de listar arquivos de serviço do Systemd no Linux. Para começar, certifique-se de que seu sistema Linux utiliza o Systemd. Em seguida, abra um terminal e vamos explorar os comandos necessários.

Listando Serviços Ativos com Systemd

Ao trabalhar com o Systemd, é comum querer saber quais serviços estão em execução. Listar serviços ativos é simples com o comando systemctl --type=service --state=running.

Este comando exibe uma tabela com todos os serviços ativos e suas descrições. Para executar, abra um terminal e digite:

systemctl --type=service --state=running

Se você busca um serviço específico, a saída pode ser extensa. O systemctl pode ser usado com grep para filtrar os resultados. Por exemplo, para verificar se o serviço snapd.service está ativo, use:

systemctl --type=service --state=running | grep 'snapd'

Para salvar a lista de serviços ativos em um arquivo, use:

systemctl --type=service --state=running > ~/servicos-ativos.txt

E para visualizar o arquivo:

cat ~/servicos-ativos.txt

Listando Serviços Inativos

Além dos serviços ativos, você pode precisar verificar quais estão inativos. Para isso, use o comando systemctl com o parâmetro --state=inactive.

Abra o terminal e execute:

systemctl --type=service --state=inactive

Este comando lista todos os serviços inativos. Assim como com os serviços ativos, você pode filtrar a saída usando grep. Por exemplo, para verificar se updatedb.service está inativo:

systemctl --type=service --state=inactive | grep 'updatedb.service'

Para salvar a lista de serviços inativos em um arquivo:

systemctl --type=service --state=inactive > ~/servicos-inativos.txt

E para visualizá-lo:

cat  ~/servicos-inativos.txt

Listando Todos os Serviços Instalados

Para visualizar todos os serviços instalados, ativos ou não, use o comando systemctl list-unit-files --type=service. Este comando exibe uma lista completa, sem filtrar por estado.

Execute no terminal:

systemctl list-unit-files --type=service

Você pode usar grep para encontrar um serviço específico. Por exemplo, para encontrar um serviço chamado meu-servico:

systemctl list-unit-files --type=service | grep 'meu-servico'

Para salvar a lista em um arquivo de texto:

systemctl list-unit-files --type=service > ~/arquivos-servico.txt

E para visualizar o arquivo:

cat ~/arquivos-servico.txt

Visualizando o Status de um Serviço Individual

Além de listar todos os serviços, é útil verificar o status de um serviço específico. Use o comando systemctl status seguido do nome do serviço.

No terminal, para verificar o status de NetworkManager.service, execute:

systemctl status NetworkManager

Para salvar o status em um arquivo:

systemctl status MeuServico > ~/MeuServico-status.txt

E para visualizá-lo:

cat ~/MeuServico-status.txt