Como listar o serviço com Systemd

Como listar o serviço com Systemd
Este artigo pode ser um comando curto, mas a impressão resultante é muito longa.

O comando dump

Se alguém pedir que você mostre toda a configuração do seu sistema, use o comando dump.

$ Systemd-Dump-Configuration-itens

O arquivo abrange todas as unidades que você tem no sistema. Depois que um desenvolvedor tiver esse arquivo disponível, a pessoa passará pelo que você tem e tentará encontrar os problemas que você está enfrentando. Sobre e terminado. No entanto, você não estaria lendo este artigo se fosse deixar alguém fazer tudo. Vamos ver o que você pode fazer com um serviço de cada vez e aprender alguns truques para filtrar seus resultados.

A hierarquia do Systemd

Para se tornar eficiente, você precisa perceber que, no Systemd, você tem hierarquia e pode definir cada serviço para depender e/ou esperar por outros serviços. As diferentes maneiras de fazer isso são evidentes nos arquivos de serviço. As diferentes declarações que você tem são 'desejos', 'obrigatórios', 'antes' e 'depois'. Para uma análise eficaz, você pode usá -las para ver se sua unidade está baixa por causa de dependências. Você pode então rastrear para onde está o problema subjacente. Aqui está um exmamato disso.

$ Systemctl list dependências-antes XPRA.serviço

A impressão mostra as outras unidades que xpra.Serviço confiar. Nesse caso, as outras unidades estão ativas, então precisamos se concentrar no motivo pelo qual a própria unidade está quebrada. O exemplo estava faltando um arquivo de certificado.

O uso mais importante disso é investigar se seu serviço está faltando dependências, use o comando dessa maneira.

$ systemctl list dependências xringd

O resultado é uma lista longa, convenientemente organizada em uma árvore e mostrando todos os serviços como verde ou vermelho se algo estiver errado. Você também pode ver as dependências no arquivo de serviços. Abra o arquivo usando seu editor favorito ou use o SystemCTL, que abrirá o arquivo com o editor padrão.

Listando serviços ativos

Quando você deseja investigar um sistema, você precisará saber como as unidades se encaixam. Para fazer isso, você tem várias opções para imprimir os detalhes. Você pode listar quais sistemas estão ocupados, falhados e assim por diante. Mais importante, você pode listar como eles são montados, qual unidade, serviço etc. A unidade atual depende de. O comando principal para fazer isso é o SystemCTL, as opções são úteis para restringir sua questão específica.

Para obter o uso adequado do SystemCTL, observe cuidadosamente as opções para o comando. Existem opções para escolher exatamente o que você precisa, especialmente em relação ao estado de qualquer serviço. Aqui estamos procurando serviços que tenham problemas.

$ Systemctl List-unit-Files --Type = Serviço

Esta lista também é longa e você precisa rolar todos os serviços para encontrar o que está procurando. Com mais alguns parâmetros, você pode filtrar para um específico ou os que estão desativados. O comando abaixo encontrará todas as unidades que são mascaradas.

$ Systemctl List-unit-Files --Type = Service-State = Mascarado

Os serviços mascarados estão bloqueados para que outros serviços não possam iniciá -los, mesmo que o outro serviço precise deles. Isso pode ser usado para garantir que você não tenha serviços conflitantes em execução. Geralmente, muitos serviços são mascarados pelo seu gerenciador de pacotes quando você remove o pacote. Você pode remover completamente o arquivo de serviço, se desejar depois de remover um serviço. Também é possível que ele destrua muitos serviços que você deseja, portanto, saiba se precisa dos serviços mascarados.

Alguns serviços são mascarados por processos e você nem sempre pretende que o serviço seja mascarado. Quando isso acontece com o seu sistema, a primeira ação a ser tomada é desmascarar usando o SystemCTL. No entanto, isso nem sempre é possível, então você precisa tirar o link no diretório adequado. Na maioria dos sistemas, isso será lib/systemd/sistema. Antes de fazer, verifique se o arquivo é realmente um link para /dev /null.

$ ls -l lib/systemd/system> | Grep null

Quando você tiver certeza de que deseja remover este link, remova -o com RM ou desvincule.

$ rm/lib/systemd/System/udisks2.serviço

Agora que você sabe como fazer isso, ouça este aviso: muitas vezes é necessário ter esse link lá. Tome o LVM2 como exemplo, ele é mascarado a partir da operação para que não interfira no novo sistema, onde o LVM2 vem com tantos pequenos serviços. Veja o resultado de:

$ SYSTEMCTL STATUS LVM2*

Remover o link pode causar estragos no seu sistema, porque o próprio LVM2 precisa evitar conflitos. Este é apenas um exemplo, então cuidado antes de seguir em frente.

Conclusão

Quando você deseja listar os serviços no Systemd, você deve primeiro refletir sobre o que está procurando em sua missão. Você está procurando um serviço que você precisa ou vê que tem muitos serviços. De qualquer maneira, você precisa adaptar sua consulta às suas necessidades específicas. O Systemd parece confuso no começo, mas quando você olha mais de perto, tudo usa uma maneira direta de unificar a inicialização para que os serviços possam começar em paralelo onde o sistema precisa, enquanto é capaz de ter todos os serviços aguardando o serviço específico de que dependem.