Vorige: guix weather
aufrufen, Nach oben: Zubehör [Inhalt][Index]
guix processes
aufrufenDer Befehl guix processes
kann sich für Entwickler und
Systemadministratoren als nützlich erweisen, besonders auf Maschinen mit
mehreren Nutzern und auf Erstellungsfarmen. Damit werden die aktuellen
Sitzungen (also Verbindungen zum Daemon) sowie Informationen über die
beteiligten Prozesse aufgelistet27. Hier ist ein Beispiel
für die davon gelieferten Informationen:
$ sudo guix processes SessionPID: 19002 ClientPID: 19090 ClientCommand: guix shell python SessionPID: 19402 ClientPID: 19367 ClientCommand: guix publish -u guix-publish -p 3000 -C 9 … SessionPID: 19444 ClientPID: 19419 ClientCommand: cuirass --cache-directory /var/cache/cuirass … LockHeld: /gnu/store/…-perl-ipc-cmd-0.96.lock LockHeld: /gnu/store/…-python-six-bootstrap-1.11.0.lock LockHeld: /gnu/store/…-libjpeg-turbo-2.0.0.lock ChildPID: 20495 ChildCommand: guix offload x86_64-linux 7200 1 28800 ChildPID: 27733 ChildCommand: guix offload x86_64-linux 7200 1 28800 ChildPID: 27793 ChildCommand: guix offload x86_64-linux 7200 1 28800
In diesem Beispiel sehen wir, dass guix-daemon
drei Clients hat:
guix shell
, guix publish
und das Werkzeug Cuirass zur
Kontinuierlichen Integration. Deren Prozesskennung (PID) ist jeweils im
ClientPID
-Feld zu sehen. Das Feld SessionPID
zeigt die PID des
guix-daemon
-Unterprozesses dieser bestimmten Sitzung.
Das Feld LockHeld
zeigt an, welche Store-Objekte derzeit durch die
Sitzung gesperrt sind, d.h. welche Store-Objekte zurzeit erstellt oder
substituiert werden (das LockHeld
-Feld wird nicht angezeigt, wenn
guix processes
nicht als Administratornutzer root ausgeführt
wird). Letztlich sehen wir an den Feldern ChildPID
und
ChildCommand
oben, dass diese drei Erstellungen hier ausgelagert
(englisch „offloaded“) werden (siehe Nutzung der Auslagerungsfunktionalität).
Die Ausgabe ist im Recutils-Format, damit wir den praktischen
recsel
-Befehl benutzen können, um uns interessierende Sitzungen
auszuwählen (siehe Selection Expressions in GNU recutils
manual). Zum Beispiel zeigt dieser Befehl die Befehlszeile und PID des
Clients an, der die Erstellung des Perl-Pakets ausgelöst hat:
$ sudo guix processes | \ recsel -p ClientPID,ClientCommand -e 'LockHeld ~ "perl"' ClientPID: 19419 ClientCommand: cuirass --cache-directory /var/cache/cuirass …
Weitere Befehlszeilenoptionen folgen.
--format=Format
-f Format
Die Ausgabe im angegebenen Format generieren, was eines der Folgenden sein muss:
recutils
Diese Option entspricht der Vorgabe. Sitzungen werden als
„Session“-Datensätze im recutils-Format ausgegeben; dabei steht jeweils ein
Feld ChildProcess
für jeden Kindprozess.
normalized
Normalisiert die ausgegebenen Datensätze nach Typ (als „Record Sets“, siehe
Record Sets in Handbuch von GNU recutils). Dadurch, dass die
Datensatztypen in der Ausgabe stehen, wird eine Verknüpfung („Join“)
zwischen den Datensatztypen möglich. Im folgenden Beispiel würde die PID
jedes Kindprozesses (mit Typ ChildProcess
) mit der PID der ihn
erzeugt habenden Sitzung (Typ Session
) angezeigt, vorausgesetzt die
Sitzung wurde mit guix build
gestartet.
$ guix processes --format=normalized | \ recsel \ -j Session \ -t ChildProcess \ -p Session.PID,PID \ -e 'Session.ClientCommand ~ "guix build"' PID: 4435 Session_PID: 4278 PID: 4554 Session_PID: 4278 PID: 4646 Session_PID: 4278
Entfernte Sitzungen, wenn
guix-daemon
mit --listen unter Angabe eines TCP-Endpunkts
gestartet wurde, werden nicht aufgelistet.
Vorige: guix weather
aufrufen, Nach oben: Zubehör [Inhalt][Index]