**Para ver todos os serviços em execução em um sistema Linux com systemd, use o comando “systemctl –type=service –state=running”. Isso mostrará o nome de cada serviço ativo, carga, sub -estado e descrição. Você também pode alterar o valor do estado para ver os serviços que estão inativos, encerrados, com falha ou inativos.**
Seu computador Linux depende de muitas tarefas em segundo plano chamadas serviços ou daemons. Nas distribuições baseadas no systemd, você possui comandos integrados que permitem ver quais serviços estão em execução, desativados ou com falha.
Índice
Serviços e Daemons
Serviços e daemons são tarefas em segundo plano executadas sem interface de usuário, não requerem interação humana e geralmente são iniciadas quando o computador é inicializado.
Ao mesmo tempo, os serviços foram lançados pela init
, que foi o primeiro processo a ser lançado. Os detalhes dos serviços foram mantidos em uma coleção de scripts localizados no diretório “/etc/init/d”. Em distribuições não-systemd, esse ainda é o caso.
No mundo systemd, os serviços são lançados, sendo systemd
agora o primeiro processo a ser lançado. Os detalhes dos serviços são armazenados em arquivos unitários localizados no diretório “/usr/lib/systemd”.
De acordo com sua página de manual, systemd
é um gerenciador de sistemas e serviços. Você pode usar o systemctl
comando para inspecionar e controlar diferentes aspectos do sistema systemd, incluindo serviços e daemons.
Como estamos analisando comandos específicos do systemd aqui, a primeira coisa que você precisa saber é se está executando uma distribuição baseada no systemd ou não.
init ou baseado em systemd?
A grande maioria das distribuições Linux usa systemd, incluindo Arch, Red Hat e Debian, e muitas das distribuições derivadas deles. Isso inclui a família de distribuições Ubuntu , Fedora e suas versões, e Manjaro e outras distribuições baseadas em Arch.
No entanto, existem bifurcações ou versões de algumas dessas distribuições que foram criadas especificamente para evitar o uso do systemd. Não só isso, mas existem outros sistemas init que alguém poderia escolher usar em vez daquele que veio por padrão em sua distribuição, como runit ou s6-linux-init .
Se você tiver que administrar um computador Linux que não foi configurado por você mesmo, a única maneira de ter certeza se ele está usando o systemd ou não é verificar. Podemos fazer isso observando a árvore de processos com o pstree
comando. Precisamos apenas ver o topo da árvore – afinal, estamos procurando o primeiro processo que é executado – então canalizaremos a saída através do head
comando e solicitaremos as cinco primeiras entradas.
pstree | cabeça -5
Podemos ver que esse systemd
é o primeiro processo executado após a inicialização, então estamos definitivamente em uma instalação do Linux baseada em systemd.
Usando systemctl para listar serviços
O comando para listar serviços e daemons é systemctl
. Podemos refinar o systemctl
comando com as opções type
e state
. Estamos pedindo systemctl
para relatar os serviços que estão em execução.
systemctl --type=serviço --state=em execução
Uma tabela de informações é gerada. Se for muito largo ou longo para a janela do seu terminal, ele será exibido no visualizador de arquivos padrão, que provavelmente será less
.
Para ver a extremidade direita da tabela, pressione a tecla de seta para a direita. Para retornar à visualização normal, pressione a tecla Seta para a esquerda.
Pressione a tecla Q para sair de menos. As colunas exibidas são:
- Unidade : O nome do serviço ou daemon. A coluna é intitulada “Unidade” porque tudo o que está nesta coluna foi iniciado usando informações
systemd
encontradas em um arquivo de unidade. - Load : O estado de carregamento do serviço ou daemon. Ele pode ser carregado, não encontrado, configuração incorreta, erro ou mascarado.
- Ativo : o estado geral em que o serviço ou daemon se encontra. Pode ser ativo, recarregando, inativo, com falha, ativando ou desativando.
- SUB : O subestado do serviço ou daemon. Ele pode estar morto, encerrado, com falha, inativo ou em execução.
- Descrição : Uma breve descrição da unidade.
Podemos canalizar a saída systemctl
se grep
quisermos nos concentrar em um único serviço. Este comando isola a entrada da tabela para o ssh
serviço.
systemctl --type=serviço --state=em execução | grep ssh
Até agora, filtramos o conteúdo da tabela fornecendo a state=running
opção. Podemos usar qualquer um dos valores possíveis do subestado: morto, encerrado, com falha, inativo ou em execução.
Vamos procurar serviços com falha:
systemctl --type=serviço --state=falhou
Combinações de subestados podem ser usadas. Digite-os como uma lista separada por vírgulas. Certifique-se de não incluir nenhum espaço em branco entre as opções. Observe que isso encontra serviços que correspondem a qualquer um dos estados.
systemctl --type=serviço --state=falhou, saiu
Pressionar a tecla de seta para a direita para observar as colunas fora da tela mostra que temos uma mistura de serviços encerrados e com falha na lista.
Por padrão, systemctl
lista processos — serviços e daemons — que foram iniciados systemd
porque systemd
encontraram um arquivo de unidade que continha um arquivo de unidade válido para eles. É por isso que o termo abreviado para todos esses processos é “unidades”.
Existe uma opção para solicitar explicitamente systemctl
a listagem de unidades, mas como é a ação padrão, ela não é usada com frequência.
Esses comandos produzem os mesmos resultados.
sudo systemctl list-units --type=service --state=running
sudo systemctl --type=serviço --state=em execução
Usando systemctl para listar arquivos de unidade
Podemos expandir o escopo do systemctl
comando incluindo a list-unit-files
opção. Isso não apenas informa sobre serviços e daemons que foram iniciados, mas também lista todos os arquivos de unidades instalados em seu computador.
systemctl list-unit-files --state=enabled
Uma tabela colorida é exibida.
Remover a state
opção remove a filtragem. A saída conterá todos os arquivos da unidade instalada, independentemente do seu estado.
arquivos de unidade de lista systemctl
A saída conterá muito mais entradas do que os resultados dos comandos anteriores.
No nosso computador de teste, a lista de resultados é quase quatro vezes maior que a saída dos nossos comandos anteriores.
Se quiser usar a state
opção, você pode usar vários estados com ela, como vimos anteriormente. As mesmas regras se aplicam. Forneça as opções como valores separados por vírgula e não inclua espaços em branco.
Este comando listará todos os arquivos da unidade que estão desabilitados ou que não foram iniciados.
systemctl list-unit-files --state = habilitado, falhou
É mostrado um número reduzido de resultados, filtrados de acordo com as seleções feitas com a opção de estado.
Olhando para um serviço em detalhes
Se algo sobre um serviço ou daemon despertar seu interesse e merecer um mergulho mais profundo, você pode examiná-lo em detalhes usando a opção systemctl status.
Vamos dar uma olhada no daemon SSH, sshd. Tudo o que precisamos fazer é usar a opção de status e o nome do serviço ou daemon.
status do systemctl sshd
Este display compacto mostra:
- O nome do serviço juntamente com uma breve descrição. Um ponto codificado por cores mostra se ele está em execução ou não. Verde significa que está funcionando, vermelho significa que não está.
- O que foi carregado, incluindo o caminho para o arquivo da unidade.
- Há quanto tempo está em execução.
- Onde a documentação está localizada no
man
manual. - O ID do processo da instância em execução.
- Quantas instâncias simultâneas deste serviço estão em execução. Normalmente este será um.
- Quanta memória está sendo consumida.
- Quanto tempo de CPU foi consumido.
- O grupo de controle ao qual o serviço pertence.
Entradas relevantes do log do sistema também são mostradas. Normalmente são eventos como a inicialização do serviço. Eles podem ser informativos se você estiver procurando por um serviço ou daemon que não foi iniciado corretamente.
Os Sistemas Autônomos
Serviços e daemons fornecem muitas ações automáticas do seu sistema operacional, por isso são vitais. Isso significa que a saúde deles também é vital.
Obter uma visão de seus serviços, daemons e arquivos de unidades é fácil e informativo. Também é uma etapa valiosa de solução de problemas se um serviço ou daemon se recusar a iniciar.