Was ich unter der Frage meine, ist: Gibt es eine Möglichkeit, die geordnete Liste zu sichern (wie es pstree für Prozesse tut), um zu sehen, wie systemd die gelieferte Menge von Einheiten ausführt, dh den Baum, nachdem die Abhängigkeiten aufgelöst und Jobs für die Ausführung in die Warteschlange gestellt wurden ? Ich weiß, dass Sie dies durch die Analyse von Systemzustandsdaten tun können, aber gibt es eine schnelle Möglichkeit, einen solchen Baum zu sehen? Dies würde bei der Untersuchung von Fehlern sehr hilfreich sein (z. B. wenn Sie feststellen, dass der Startvorgang bei einem Gerät blockiert ist, können Sie den ungefähren Ort für Ihre eingehendere Untersuchung bestimmen.
63
Antworten:
systemd-analyze
ist dein Freund. Zum Beispielsystemd-analyze critical-chain
gibt sie einen blockierenden Baum von Daemons aus. Meins zum Beispiel:NetworkManager im Beispiel hält im Grunde den gesamten Systemstart.
Wenn Sie eine detailliertere Ansicht wünschen, können Sie die gesamte Ausführungskette in einer SVG-Datei rendern.
systemd-analyze plot > something.svg
Gibt die gesamte Kette (über 120 Module) als Fortschrittsbalken in eine hochauflösende SVG-Datei aus, die blockierte Zustände und andere Probleme anzeigt.Endlich haben Sie ein
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 sie auch als ps- und svg-Dateien ausgeben.Alle oben genannten Tools sind in das Systemd-Analyse-Tool integriert, das standardmäßig mindestens in Archlinux mit Systemd ausgeliefert wird. Ich denke, es gibt auch Projekte von Drittanbietern, die sich damit befassen.
quelle
systemd-analyze plot > something.svg
ist voll drei der Ausführung mit Zielen (es ist am nächsten, was Sie wollen). systemd-analyse dot ist ein vollständiger Graph der Abhängigkeiten (es ist die korrekteste Darstellung). Sind das nicht was du willst? In der Handlung einfach Ziel finden und sehen, was es zu laufen braucht. Dieselben Abhängigkeiten werden im Diagramm genau aufgelistet, wenn ein Diagrammanalyse-Toolkit zu häufig gestartet und ein Diagrammpunkt ausgewählt wird, für den Abhängigkeiten angezeigt werden sollen (das Punkt-Tool verfügt über mehr Einstellungen). Siehe Manpage: freedesktop.org/software/systemd/man/systemd-analyze.html --order and similar$ systemd-analyze dot 'avahi-daemon.*' | dot -Tsvg > avahi.svg
$ eog avahi.svg
Hier werden die Abhängigkeiten zwischen allen bekanntensystemd-analyze dot --to-pattern='*.target' --from-pattern='*.target' | dot -Tsvg > targets.svg
$ eog targets.svg
Möglicherweise wird Ihre Frage noch nicht vollständig beantwortet, aber Sie können es mit der
--fuzz
Option versuchenHinweis : Sie können auch Einheit angeben s ihre sehen kritisch-Kette , so dass Sie auf die nicht darauf beschränkt sind multi-user.target
Hoffe das hilft
quelle
Ich bin nicht sicher, ob ich die Frage richtig verstehe, aber mit den folgenden Befehlen sind Baumvisualisierungen verfügbar:
Und auch :
Hoffe das hilft :)
Es kann auch für andere Zwecke nützlich sein, einen Baum der Ordner systemctl symlinks zu erstellen:
Es war wirklich nützlich, alte / fehlerhafte Einheiten herauszufinden, die meinen Systemstart verlangsamten, und sie anschließend mit dem
systemctl disable
Befehl zu deaktivieren .BEARBEITEN
Das heißt, ich stimme dem OP wirklich zu, dass diese grundlegende Funktionalität über Befehlszeilen-Tools und nicht über ein grafisches Tool bereitgestellt werden sollte. Was ist, wenn Sie X nicht starten können? Wie gehst du dann mit deiner svg-Datei um?
Eigentlich gibt es einen Weg. Wenn Sie
scp
(ssh tool) nicht verwenden können , um Ihre Datei auf einem anderen Computer abzurufen,fbi
könnte dies tatsächlich hilfreich sein :)Hat in meinen TTYs gearbeitet. Navigieren Sie einfach mit den Pfeilen im Bild. Es gibt Zoomoptionen, um sie aufzulisten
fbi -h
.Ich hoffe wieder, das hilft. Es ist in Archlinux- und Ubuntu-Repos verfügbar.
EDIT 2:
fbi
funktioniert nicht über ssh Sie können X-Weiterleitungen wie folgt ausführenssh -Y user@server
, benötigen jedoch einen X-Server, der auf Ihrem Remote-Server ausgeführt wird.Die beste Wette ist hier zu verwenden
sshfs
. Es funktioniert sehr gut im Userspace, zum Beispiel mit Nautilus. Es gibt eine kleine Konfiguration, siehe:quelle
sshfs
noch besser. Siehe