O que quero dizer com a pergunta é: existe uma maneira de despejar a lista ordenada (como a pstree faz para processos) para ver como o systemd executou o conjunto de unidades fornecido, ou seja, a árvore depois que as dependências foram resolvidas e os trabalhos foram enfileirados para execução ? Eu sei que você pode fazer isso analisando os dados do estado systemd, mas existe uma maneira rápida de ver uma árvore dessas? Isso ajudaria muito na investigação de falhas (por exemplo, se você ver que o processo de inicialização estava travado em alguma unidade, seria capaz de identificar o local aproximado para uma investigação mais profunda.
63
Respostas:
systemd-analyze
é seu amigo. Por exemplo,systemd-analyze critical-chain
saídas bloqueando a árvore de daemons. Mina, por exemplo:O NetworkManager no exemplo basicamente mantém a inicialização inteira.
Se você quiser ter uma visão mais detalhada, poderá renderizar toda a cadeia de execução em um arquivo svg.
systemd-analyze plot > something.svg
gera uma cadeia inteira (mais de 120 módulos) como barras de progresso para um arquivo svg de alta resolução que mostra os estados bloqueados e outros problemas.Finalmente, você tem uma
systemd-analyze dot
ferramenta que gera um arquivo de ponto que gera uma hierarquia inteira:systemd-analyze dot | dot -Tpng -o stuff.png
com a ferramenta de ponto, você também pode produzir como arquivos ps e svg.Todas as ferramentas acima são embutidas na ferramenta systemd-analyse, que vem por padrão com o systemd no archlinux, pelo menos. Eu acho que existem alguns projetos de terceiros lidando com isso também.
fonte
systemd-analyze plot > something.svg
está completo três de execução com destinos (é o mais próximo do que você deseja). O ponto systemd-analyse é um gráfico completo das dependências (é a representação mais correta). Não é isso que você quer? Na trama, basta encontrar o alvo e ver o que ele também precisa ser executado. As mesmas dependências são exatamente o gráfico listado, se for necessário iniciar algum kit de ferramentas de análise de gráficos e selecionar o ponto do gráfico para o qual você deseja ver dependências (a ferramenta de pontos possui mais configurações). Veja a página de manual: freedesktop.org/software/systemd/man/systemd-analyze.html --order e similares$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg
Plota as dependências entre todas as unidades de destino conhecidas:systemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
$ eog targets.svg
Ainda não está respondendo totalmente à sua pergunta, mas tente com a
--fuzz
opçãoObserve que você também pode especificar unidades s para ver sua cadeia crítica , para que você não fique limitado ao multiusuário.
Espero que isto ajude
fonte
Não sei se entendi corretamente a pergunta, mas existem visualizações em árvore disponíveis com os seguintes comandos:
E também :
Espero que isto ajude :)
Além disso, pode ser útil para outros fins criar uma árvore das pastas de links simbólicos systemctl:
Na verdade, foi realmente útil descobrir unidades antigas / de buggy que estavam desacelerando a inicialização do sistema, para desativá-las posteriormente usando o
systemctl disable
comandoEDITAR
Dito isso, eu realmente concordo com o OP de que essa funcionalidade básica deve ser fornecida por meio de ferramentas de linha de comando, e não por uma ferramenta gráfica ... E se você não puder iniciar o X? Como você lida com o seu arquivo svg?
Na verdade, existe um caminho. Se você não pode usar
scp
(ferramenta ssh) para buscar seu arquivo em outro computador,fbi
pode realmente ajudá-lo :)Trabalhei em meus TTYs. Basta navegar dentro da imagem com setas. Existem opções de zoom para listar
fbi -h
.Mais uma vez, espero que isso ajude. Está disponível nos repositórios Archlinux e Ubuntu.
EDIT 2:
fbi
não funciona sobre ssh. Você pode fazer o encaminhamento do X assimssh -Y user@server
, mas precisa de um servidor X em execução no servidor remoto.A melhor aposta aqui é usar
sshfs
. Ele funciona muito bem no espaço do usuário, por exemplo, com nautilus. Há uma pequena configuração para fazer, veja:fonte
sshfs
funciona ainda melhor. Veja EDIT 2.