GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es eine Möglichkeit, den Ausführungsbaum von systemd anzuzeigen?

Lösung 1:

systemd-analyze ist dein Freund. Zum Beispiel systemd-analyze critical-chain gibt Blockbaum von Daemons aus. Mine zum Beispiel:

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 im Beispiel hält im Grunde den gesamten Start.

Wenn Sie eine detailliertere Ansicht haben möchten, können Sie die gesamte Ausführungskette in einer SVG-Datei rendern.systemd-analyze plot > something.svg gibt die gesamte Kette (120+ Module) als Fortschrittsbalken in eine hochauflösende SVG-Datei aus, die Zustände, Blockierungen und andere Probleme anzeigt.

Schließlich haben Sie systemd-analyze dot Werkzeug, das eine Punktdatei ausgibt, die die gesamte Hierarchie ausgibt:systemd-analyze dot | dot -Tpng -o stuff.png Mit dem Punktwerkzeug können Sie es auch als PS- und SVG-Dateien ausgeben.

Alle oben genannten Tools sind in das systemd-analyze-Tool integriert, das standardmäßig zumindest in archlinux mit systemd geliefert wird. Ich denke, es gibt auch einige Projekte von Drittanbietern, die sich damit befassen.

Lösung 2:

Ich bin mir nicht sicher, ob ich die Frage richtig verstehe, aber es gibt Baumvisualisierungen, die mit den folgenden Befehlen verfügbar sind:

sudo systemctl status

Und auch :

sudo systemctl list-dependencies 

Hoffe das hilft :)

Außerdem könnte es für andere Zwecke nützlich sein, einen Baum der systemctl-Symlinks-Ordner zu erstellen:

tree /etc/systemd/system

Es war tatsächlich sehr nützlich, alte / fehlerhafte Einheiten herauszufinden, die meinen Systemstart verlangsamten, um sie anschließend mit dem systemctl disable zu deaktivieren Befehl.

BEARBEITEN

Das heißt, ich stimme dem OP wirklich zu, dass diese grundlegende Funktionalität über Befehlszeilentools und nicht über ein grafisches Tool bereitgestellt werden sollte ... Was ist, wenn Sie X nicht starten können? Wie gehen Sie dann mit Ihrer SVG-Datei um?

Eigentlich gibt es einen Weg. Wenn Sie scp nicht verwenden können (ssh-Tool), um Ihre Datei auf einem anderen Computer abzurufen, fbi könnte dir tatsächlich helfen :)

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

Arbeitete in meinen TTYs. Navigieren Sie einfach mit den Pfeilen innerhalb des Bildes. Es gibt Zoom-Optionen, um sie aufzulisten, tun Sie fbi -h .

Nochmals, ich hoffe, das hilft. Es ist in Archlinux- und Ubuntu-Repositorys verfügbar.

BEARBEITEN 2:

fbi funktioniert nicht über ssh. Sie können eine X-Weiterleitung wie diese ssh -Y [email protected] durchführen , aber Sie brauchen einen X-Server, der auf Ihrem entfernten Server läuft.

Am besten verwenden Sie hier sshfs . Es funktioniert GROSSARTIG im Userspace, zum Beispiel mit Nautilus. Es gibt ein wenig Konfiguration zu tun, siehe:

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

Lösung 3:

Kann Ihre Frage immer noch nicht vollständig beantworten, aber versuchen Sie es mit --fuzz Möglichkeit

systemd-analyze critical-chain --fuzz 1h

Beachten Sie, dass Sie auch Einheitens angeben können um ihre kritische Kette zu sehen , Sie sind also nicht auf multi-user.target beschränkt

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

Hoffe das hilft


Linux
  1. systemd-analyze:Befehl nicht gefunden

  2. Gibt es eine Möglichkeit, die Umgebungsvariablen eines anderen Prozesses in Unix zu ändern?

  3. Gibt es eine Möglichkeit, spaltenweise zu 'uniq'?

  4. Gibt es eine Möglichkeit, den aktuellen rpath unter Linux zu überprüfen?

  5. Gibt es eine Möglichkeit, den Tooltip-Text in Firefox zu kopieren?

Gibt es eine Möglichkeit, Badblocks neu zu starten?

Gibt es eine Möglichkeit, einen Screenshot im KDE-Desktop zu machen, indem man nur die PrtSc-Taste drückt?

Linux - Gibt es eine Möglichkeit, die Geschwindigkeit Ihres Speichers per Software zu ermitteln?

Gibt es eine Möglichkeit, die Volume-ID einer .iso-Datei über die Befehlszeile zu ändern?

Gibt es eine Möglichkeit, den Prozess zu hören?

Gibt es eine Möglichkeit, die BIOS-Version von Linux abzurufen?