table of contents
VARLINKCTL(1) | varlinkctl | VARLINKCTL(1) |
BEZEICHNUNG¶
varlinkctl - Varlink-Diensten untersuchen und aufrufen
ÜBERSICHT¶
varlinkctl [OPTIONEN…] info ADRESSE
varlinkctl [OPTIONEN…] list-interfaces ADRESSE
varlinkctl [OPTIONEN…] list-methods ADRESSE [SCHNITTSTELLE…]
varlinkctl [OPTIONEN…] introspect ADRESSE [SCHNITTSTELLE…]
varlinkctl [OPTIONEN…] call ADRESSE METHODE [ARGUMENTE]
varlinkctl [OPTIONEN…] validate-idl [DATEI]
BESCHREIBUNG¶
varlinkctl kann zur Untersuchung und dem Aufruf von Varlink[1]-Diensten verwandt werden.
Dienste werden durch eines der Folgenden referenziert:
Für mehr Komfort werden diese zwei einfacheren (redundanten) Diensteadressyntaxen auch unterstützt:
BEFEHLE¶
Die folgenden Befehle werden verstanden:
info ADRESSE
Hinzugefügt in Version 255.
list-interfaces ADRESSE
Hinzugefügt in Version 255.
list-methods ADRESSE [SCHNITTSTELLE…]
Hinzugefügt in Version 257.
introspect ADRESSE [SCHNITTSTELLE…]
Hinzugefügt in Version 255.
call ADRESSE METHODE [ARGUMENTE]
Die Antwortparameter werden als JSON-Objekt nach Stdout geschrieben.
Hinzugefügt in Version 255.
validate-idl [DATEI]
Hinzugefügt in Version 255.
help
Hinzugefügt in Version 255.
OPTIONEN¶
Die folgenden Optionen werden verstanden:
--more
Falls dieser Modus aktiviert ist, wird die Ausgabe automatisch auf den JSON-SEQ-Modus umgeschaltet, so dass einzelne Antwortobjekte leicht unterschieden werden können.
Dieser Schalter hat keine Auswirkung auf die standardmäßig angewandte Methodenaufruf-Zeitüberschreitung: Unabhängig davon, ob --more angegeben ist, wird die Standardzeitüberschreitung 45 s sein. Verwenden Sie den (nachfolgend beschriebenen) --timeout=, um die Zeitüberschreitung zu ändern oder zu deaktivieren. Beim Aufruf eines Methodenaufrufs, der kontinuierlich Aktualisierungen zurückliefert, ist es typischerweise wünschenswert, die Zeitüberschreitung mit --timeout=infinity zu deaktivieren. Andererseits ist es typischerweise von Vorteil, beim Aufruf des Methodenaufrufs --more zum Zwecke der Aufzählung von Objekten (was wahrscheinlich sehr schnell abgeschlossen ist), die Zeitüberschreitungslogik aus Zwecken der Robustheit aktiviert zu lassen.
Hinzugefügt in Version 255.
-E
Hinzugefügt in Version 257.
--collect
Hinzugefügt in Version 256.
--oneway
Hinzugefügt in Version 255.
--json=MODUS
Hinzugefügt in Version 255.
-j
Hinzugefügt in Version 255.
--quiet, -q
Hinzugefügt in Version 257.
--graceful=
Hinzugefügt in Version 257.
--timeout=
Hinzugefügt in Version 257.
--no-pager
-h, --help
--version
BEISPIELE¶
Beispiel 1. Einen Dienst untersuchen
Die folgenden drei Befehle untersuchen den durch systemd-resolved.service(8) implementierten Dienst »io.systemd.Resolve«. Sie listen allgemeine Dienstinformationen und Implementierungsschnittstellen auf und zeigen dann die Schnittstellendefinitionen seiner primären Schnittstelle an:
$ varlinkctl info /run/systemd/resolve/io.systemd.Resolve
Vendor: The systemd Project
Product: systemd (systemd-resolved)
Version: 254 (254-1522-g4790521^)
URL: https://systemd.io/ Interfaces: io.systemd
io.systemd.Resolve
org.varlink.service $ varlinkctl list-interfaces /run/systemd/resolve/io.systemd.Resolve io.systemd io.systemd.Resolve org.varlink.service $ varlinkctl introspect /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve interface io.systemd.Resolve type ResolvedAddress(
ifindex: ?int,
…
(Im obigen Beispiel wurden die Schnittstellendefinitionen im Interesse einer kurzen Darstellung abgeschnitten.)
Beispiel 2. Aufruf einer Methode
Der folgende Befehl löst einen Rechnernamen mittels des Methodenaufrufs ResolveHostname von systemd-resolved.service(8) auf.
$ varlinkctl call /run/systemd/resolve/io.systemd.Resolve io.systemd.Resolve.ResolveHostname '{"name":"systemd.io","family":2}' -j {
"addresses" : [
{
"ifindex" : 2,
"family" : 2,
"address" : [
185,
199,
111,
153
]
}
],
"name" : "systemd.io",
"flags" : 1048577 }
Beispiel 3. Untersuchung des Programms eines Dienstes
Der folgende Befehl untersucht das Programm /usr/lib/systemd/systemd-pcrextend und die von ihm bereitgestellten IPC-APIs. Dann ruft es eine Methode darauf aus:
# varlinkctl info /usr/lib/systemd/systemd-pcrextend
Vendor: The systemd Project
Product: systemd (systemd-pcrextend)
Version: 254 (254-1536-g97734fb)
URL: https://systemd.io/ Interfaces: io.systemd
io.systemd.PCRExtend
org.varlink.service # varlinkctl introspect /usr/lib/systemd/systemd-pcrextend io.systemd.PCRExtend interface io.systemd.PCRExtend method Extend(
pcr: int,
text: ?string,
data: ?string ) -> () # varlinkctl call /usr/lib/systemd/systemd-pcrextend io.systemd.PCRExtend.Extend '{"pcr":15,"text":"foobar"}' {}
Beispiel 4. Aufruf einer Methode aus der Ferne mittels SSH
Der folgende Befehl erlangt einen Bericht über die Identität des fernen Rechners »einemaschine« von systemd-hostnamed.service(8) durch Verbindung mittels SSH an das AF_UNIX-Socket, auf dem der Dienst auf Anfragen wartet:
# varlinkctl call ssh-unix:einemaschine:/run/systemd/io.systemd.Hostname io.systemd.Hostname.Describe '{}'
Um das Varlink-Diensteprogramm direkt auf dem fernen Rechner aufzurufen, können Sie folgendes anstelle der Kommunikation mit dem Dienst über AF_UNIX durchführen:
# varlinkctl call ssh-exec:einemaschine:/usr/bin/systemd-creds org.varlink.service.GetInfo '{}'
SIEHE AUCH¶
busctl(1), Varlink[1]
ANMERKUNGEN¶
- 1.
- Varlink
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
systemd 257~rc3 |