GNU/Linux >> Tutoriels Linux >  >> Linux

Existe-t-il un moyen de voir l'arborescence d'exécution de systemd ?

Solution 1 :

systemd-analyze est votre ami.Par exemple systemd-analyze critical-chain affiche l'arborescence de blocage des démons.Mine par exemple :

graphical.target @20.211s
└─multi-user.target @20.211s
  └─nginx.service @19.348s +862ms
    └─network.target @19.347s
      └─NetworkManager.service @10.315s +9.031s
        └─basic.target @10.312s
          └─timers.target @10.311s
            └─systemd-tmpfiles-clean.timer @10.311s
              └─sysinit.target @10.295s
                └─systemd-update-utmp.service @10.167s +127ms
                  └─systemd-tmpfiles-setup.service @10.124s +41ms
                    └─local-fs.target @10.097s
                      └─home-entd-Downloads.mount @10.093s +2ms
                        └─home.mount @9.326s +672ms
                          └─[email protected] @8.472s +696ms
                            └─dev-sda6.device @8.471s

NetworkManager dans l'exemple contenant essentiellement tout le démarrage.

Si vous voulez avoir une vue plus détaillée, vous pouvez rendre toute la chaîne d'exécution dans un fichier svg.systemd-analyze plot > something.svg produit la chaîne entière (plus de 120 modules) sous forme de barres de progression vers un fichier svg haute résolution qui montre les états, qui sont bloqués et d'autres problèmes.

Enfin vous avez systemd-analyze dot outil qui génère un fichier de points qui génère toute la hiérarchie :systemd-analyze dot | dot -Tpng -o stuff.png avec l'outil point, vous pouvez également le générer sous forme de fichiers ps et svg.

Tous les outils ci-dessus sont intégrés dans l'outil systemd-analyze qui est fourni par défaut avec systemd dans archlinux au moins. Je pense qu'il y a aussi des projets tiers qui traitent de cela.

Solution 2 :

Je ne suis pas sûr de bien comprendre la question, mais il existe des visualisations d'arborescence disponibles avec les commandes suivantes :

sudo systemctl status

Et aussi :

sudo systemctl list-dependencies 

J'espère que cela vous aidera :)

En outre, il peut être utile à d'autres fins de créer une arborescence des dossiers de liens symboliques systemctl :

tree /etc/systemd/system

C'était en fait très utile pour comprendre les anciennes unités / boguées qui ralentissaient le démarrage de mon système, pour les désactiver ensuite en utilisant le systemctl disable commande.

MODIFIER

Cela dit, je suis vraiment d'accord avec l'OP que cette fonctionnalité de base devrait être donnée via des outils de ligne de commande, et non un outil graphique... Et si vous ne pouvez pas démarrer X ? Comment gérez-vous votre fichier svg alors ?

En fait, il y a un moyen. Si vous ne pouvez pas utiliser scp (outil ssh) pour récupérer votre fichier sur un autre ordinateur, fbi pourrait en fait vous aider :)

sudo systemd-analyze plot > /home/user/startup.svg
fbi /home/user/startup.svg

A travaillé dans mes ATS. Naviguez simplement à l'intérieur de l'image avec des flèches. Il existe des options de zoom, pour lister faites fbi -h .

Encore une fois, j'espère que cela aide. Il est disponible dans les dépôts Archlinux et Ubuntu.

EDIT 2 :

fbi ne fonctionne pas sur ssh. Vous pouvez faire un transfert X comme ceci ssh -Y [email protected] , mais vous avez besoin d'un serveur X exécuté sur votre serveur distant.

Le meilleur pari ici est d'utiliser sshfs . Cela fonctionne très bien dans l'espace utilisateur, par exemple avec nautilus. Il y a une petite configuration à faire, voir :

sudo vim /etc/fuse.conf #type a, uncomment the user_allow_other line and ESC :wq
sudo mkdir /mnt/yourmountingdir
sudo chown user:user /mnt/yourmountingdir
sshfs [email protected]:/home/user /mnt/yourmountingdir/ -o allow_other #Asks for host trusting and password
sudo fusermount -u /mnt/yourmountingdir/ #To disconnect and unmount

Solution 3 :

Peut toujours ne pas répondre entièrement à votre question, mais essayez avec --fuzz possibilité

systemd-analyze critical-chain --fuzz 1h

Notez que vous pouvez également spécifier des unitéss pour voir leur chaîne critique , vous n'êtes donc pas limité à multi-user.target

systemd-analyze critical-chain network.target local-fs.target

J'espère que cela vous aidera


Linux
  1. Existe-t-il un moyen de modifier les variables d'environnement d'un autre processus sous Unix ?

  2. Existe-t-il un moyen de trouver le temps d'exécution de la dernière commande exécutée dans le shell ?

  3. Existe-t-il un moyen de redémarrer les badblocks ?

  4. Linux - Existe-t-il un moyen d'identifier la vitesse de votre mémoire via un logiciel ?

  5. Existe-t-il un moyen de modifier un identifiant de volume de fichiers .iso à partir de la ligne de commande ?

Existe-t-il un moyen de copier le texte de l'info-bulle dans Firefox ?

Existe-t-il un moyen de déterminer la taille décompressée d'un fichier .bz2 ?

Existe-t-il un moyen de modifier les couleurs utilisées dans les consoles TTY sous Linux ?

Existe-t-il un moyen de copier du texte dans htop?

Existe-t-il un moyen de prendre une capture d'écran dans le bureau KDE en appuyant uniquement sur la touche PrtSc ?

Existe-t-il un moyen rapide d'obtenir le tout dernier fichier dans un grand TAR ?