VARLINKCTL(1) varlinkctl VARLINKCTL(1) (NAME) varlinkctl - Varlink (SYNOPSIS) varlinkctl [OPTIONS...] info ADDRESS varlinkctl [OPTIONS...] list-interfaces ADDRESS varlinkctl [OPTIONS...] list-methods ADDRESS [INTERFACE...] varlinkctl [OPTIONS...] introspect ADDRESS [INTERFACE...] varlinkctl [OPTIONS...] call ADDRESS METHOD [ARGUMENTS] varlinkctl [OPTIONS...] --exec call ADDRESS METHOD ARGUMENTS -- CMDLINE varlinkctl [OPTIONS...] serve METHOD {CMDLINE...} varlinkctl [OPTIONS...] validate-idl [FILE] (DESCRIPTION) varlinkctl Varlink[1] . : o Varlink "unix:" AF_UNIX "@" ( abstract namespace ). (stream socket) . o Varlink "exec:" (binary) . (fork ) . o Varlink "ssh-unix:" SSH ":" AF_UNIX . ( OpenSSH 9.4 .) o Varlink "ssh-exec:" SSH ":" . Varlink . ( ) : o AF_UNIX ( "/" ) ( "./" ). o ( "/" "./" ). (COMMANDS) : info ADDRESS . . 255. list-interfaces ADDRESS . . 255. list-methods ADDRESS [INTERFACE...] . . . 257. introspect ADDRESS [INTERFACE...] . Varlink . . 255. call ADDRESS METHOD [ARGUMENTS] . Varlink JSON . STDIN . "{}" . JSON STDOUT . 255. serve METHOD CMDLINE... Varlink . call --upgrade . ( $LISTEN_FDS) . upgrade (fork ) . / Varlink . (sandboxing) systemd ( ProtectSystem= ) . 261. list-registry Varlink . ( /run/varlink/registry/ .) 260. validate-idl [FILE] Varlink . . . STDIN . 255. help . 255. (OPTIONS) : --more call: . more . ( ) . . JSON-SEQ . . --more . --timeout= ( ) . --timeout=infinity . --more ( ) . 255. -E --more --timeout=infinity. . 257. --collect --more JSON-SEQ JSON . 256. --oneway call: . oneway ( ) . 255. --upgrade call: . upgrade . . Varlink . --exec varlinkctl : . --exec . --exec ( --upgrade) . stdin/stdout . --more --oneway --collect --graceful= --push-fd= . 261. --json=MODE JSON "pretty" "short" . "short" . 255. -j --json=pretty . --json=short (pipe) . 255. --quiet, -q . 257. --graceful= ( ) Varlink "org.varlink.service.InvalidParameter". varlinkctl . . 257. --timeout= . . "infinity" . 257. --exec call (chainload) JSON ( ). $LISTEN_FDS . . --exec call ( ) . 258. --push-fd= . . . varlinkctl . ( "./" ) . 258. --system, --user list-registry . . 260. --no-ask-password . --no-pager (pager) . -h, --help . --version . (FILES & DIRECTORIES) /run/varlink/registry/ AF_UNIX ( ) Varlink . Varlink . varlinkctl list-registry . ( . .) 260. (EXAMPLES) . "io.systemd.Resolve" systemd- resolved.service(8) : $ 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, ... ( .) . ResolveHostname systemd-resolved.service(8) . $ 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 } . /usr/lib/systemd/systemd-pcrextend IPC . : # 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"}' {} . SSH "somehost" systemd-hostnamed.service(8) SSH AF_UNIX : # varlinkctl call ssh-unix:somehost:/run/systemd/io.systemd.Hostname io.systemd.Hostname.Describe '{}' Varlink AF_UNIX : # varlinkctl call ssh-exec:somehost:systemd-creds org.varlink.service.GetInfo '{}' . xz Varlink . . # /etc/systemd/system/varlink-decompress-xz.socket [Socket] ListenStream=/run/varlink/registry/com.example.Decompress.XZ [Install] WantedBy=sockets.target # /etc/systemd/system/varlink-decompress-xz.service [Service] ExecStart=varlinkctl serve com.example.Decompress.XZ xz -d DynamicUser=yes PrivateNetwork=yes ProtectSystem=strict ProtectHome=yes NoNewPrivileges=yes SystemCallFilter=~@privileged @resources MemoryMax=256M : $ echo "hello" | xz | varlinkctl call --upgrade \ unix:/run/varlink/registry/com.example.Decompress.XZ \ com.example.Decompress.XZ '{}' hello systemd-socket-activate : $ systemd-socket-activate -l /tmp/decompress.sock -- varlinkctl serve com.example.Decompress.XZ xz -d & $ echo "hello" | xz | varlinkctl call --upgrade unix:/tmp/decompress.sock com.example.Decompress.XZ '{}' hello (SEE ALSO) busctl(1), Varlink[1] (NOTES) 1. Varlink https://varlink.org systemd 261.2 VARLINKCTL(1)