MACHINECTL(1)

BEZEICHNUNG
machinectl - Steuert den Systemd-Maschinenverwalter

ÜBERSICHT

machinectl [OPTIONEN…] {BEFEHL} [NAME…]

BESCHREIBUNG

machinectl kann zur Untersuchung und Steuerung des Zustand des Registrierungsverwalters systemd-machined.service(8) von systemd(1) für virtuelle Maschinen und Container verwandt werden.

machinectl kann zur Ausführung von Aktionen auf Maschinen und Abbildern verwandt werden. In diesem Zusammenhang werden Maschinen als folgende laufende Instanzen betrachtet:

    • Virtuelle Maschinen (VMs), die Hardware virtualisieren, um vollständige Betriebssysteminstanzen (einschließlich ihrer Kernel) in einer virtualisierten Umgebung oberhalb des Wirtsbetriebssystems auszuführen.

    • Container, die Hardware und Betriebssystemkernel mit dem Wirtsbetriebssystem gemeinsam benutzen, um eine Betriebssystem-Benutzerinstanz oberhalb des Wirtsbetriebssystems auszuführen.

    • Das Wirtsystem selbst.

Maschinen werden durch Namen identifiziert, die den gleichen Regeln wie UNIX- und DNS-Rechnernamen folgen. Details nachfolgend.

Maschinen werden von Platte oder Systemabbildern instanziiert, die häufig, aber nicht notwendigerweise, die gleichen Namen wie Maschinen, von denen sie ausgeführt werden, tragen. In diesem Zusammenhang können Abbilder Folgendes sein:

    • Verzeichnisbäume, die ein Betriebssystem enthalten, einschließlich der Verzeichnisse auf oberster Ebene wie /usr/, /etc/ usw.

    • Btrfs-Teildatenträger, die Betriebssystembäume, ähnlich zu regulären Verzeichnisbäumen enthalten.

    • Binäre »rohe« Plattenabbilddateien, die MBR- oder GPT-Partitionstabellen und Linux-Dateisysteme enthalten.

    • Ähnlicherweise Blockgeräte, die MBR- oder GPT-Partitionstabellen und Dateisysteme enthalten.

    • Der Dateisystembaum des Wirtsbetriebssystems selbst.

Abbilder können mittels des Werkzeugs importctl(1) heruntergeladen sowie im- und exportiert werden.

BEFEHLE

Die folgenden Befehle werden verstanden:

  Maschinenbefehle

list
    Listet die derzeit laufenden (online) virtuellen Maschinen und Container auf. Um startfähige Maschinenabbilder aufzuzählen, verwenden Sie list-images (siehe unten). Beachten Sie, dass dieser Befehl standardmäßig die besondere Maschine ».host« versteckt. Verwenden Sie den Schalter --all, um sie anzuzeigen.

    Hinzugefügt in Version 206.

status NAME…
    Zeigt Laufzeitstatusinformationen über eine oder mehrere virtuelle Maschinen und Container an, gefolgt von den neusten Protokolldaten aus dem Journal. Diese Funktion ist zur Darstellung menschenlesbarer Ausgabe gedacht. Falls Sie Computer-auswertbare Ausgaben benötigen, verwenden Sie stattdessen show. Beachten Sie, dass die angezeigten Protokolldaten durch den Verwalter der virtuellen Maschine oder Container gemeldet werden und häufig Konsolenausgabe aus der Maschine enthält, aber nicht notwendigerweise Journal-Inhalte der Maschine selbst.

    Hinzugefügt in Version 206.

show [NAME…]
    Zeigt die Eigenschaften einer oder mehrerer registrierter virtueller Maschinen oder Container oder des Verwalters selbst an. Falls kein Argument angegeben ist, werden die Eigenschaften des Verwalters angezeigt. Falls ein NAME angegeben ist, werden die Eigenschaften dieser virtuellen Maschine oder dieses Containers angezeigt. Standardmäßig werden leere Eigenschaften unterdrückt. Verwenden Sie --all, um diese auch anzuzeigen. Um bestimmte anzuzeigende Eigenschaften auszuwählen, verwenden Sie --property=. Dieser Befehl ist dafür gedacht, eingesetzt zu werden, wenn Computer-auswertbare Ausgabe benötigt wird und gibt nicht den gesamten Control-Gruppenbaum oder Journal-Einträge aus. Verwenden Sie status, falls Sie menschenlesbare Ausgabe benötigen.

    Hinzugefügt in Version 206.

start NAME…
    Startet einen Container mittels systemd-nspawn(1) als Systemdienst. Dies startet systemd-nspawn@.service, instanziiert für den angegebenen Maschinennamen, ähnlich der Wirkung von systemctl start auf den Dienstenamen. systemd-nspawn sucht nach einem Container-Abbild des angegebenen Namens in /var/lib/machines/ (und anderen Suchpfaden, siehe unten) und führt ihn aus. Verwenden Sie list-images (siehe unten) zur Auflistung verfügbarer, startfähiger Container-Abbilder.

    Beachten Sie, dass systemd-machined.service(8) auch mit einer Reihe von anderen Container- und VM-Verwaltern koppelt, systemd-nspawn ist nur eine Implementierung davon. Die meisten in machinectl verfügbaren Befehle können auch auf durch andere Verwalter, nicht nur systemd-nspawn, gesteuerte Container oder VMs angewandt werden. Das Starten von VMs und Container-Abbildern bei diesen Verwaltungsprogrammen benötigt angepasste Werkzeuge.

    Um auf der Befehlszeile einen Container interaktiv mit vollem Zugriff auf die Konsole des Containers zu starten, rufen Sie systemd-nspawn direkt auf. Zum Stoppen eines Containers verwenden Sie machinectl poweroff.

    Hinzugefügt in Version 219.

login [NAME]
    Öffnet eine interaktive Terminalanmeldesitzung in einem Container oder auf der lokalen Maschine. Falls ein Argument bereitgestellt wird, bezieht es sich auf die Container-Maschine, zu der verbunden werden soll. Falls keine angegeben ist oder der Container-Name als leere Zeichenkette oder der besondere Maschinenname ».host« angegeben ist (siehe unten), erfolgt die Verbindung stattdessen zum lokalen Rechner. Dies erstellt eine TTY-Verbindung zu dem angegebenen Container oder der lokalen Maschine und bittet um die Ausführung eines Getty darauf. Beachten Sie, dass dies nur für Container unterstützt wird, die systemd(1) als Init-System ausführen.

    Dieser Befehl öffnet eine vollständige Anmeldeaufforderung im Container oder der lokalen Maschine, die dann um Benutzername und Passwort bittet. Verwenden Sie shell (siehe unten) oder systemd-run(1) mit dem Schalter --machine=, um direkt einen einzelnen Befehl aufzurufen, entweder interaktiv oder im Hintergrund.

    Hinzugefügt in Version 209.

shell [[NAME@]NAME [PFAD [ARGUMENTE…]]]
    Öffnet eine interaktive Shell-Sitzung in einem Container oder der lokalen Maschine. Das erste Argument bezieht sich auf die zu verbindende Container-Maschine. Falls keine angegeben ist oder der Container-Name als leere Zeichenkette oder der besondere Maschinenname ».host« angegeben ist (siehe unten), erfolgt die Verbindung stattdessen zum lokalen Rechner. Dies funktioniert ähnlich zu login, ruft aber sofort einen Benutzerprozess auf. Dieser Befehl führt das angegebene Benutzerprogramm mit den angegebenen Argumenten oder die Standard-Shell für den Benutzer, falls kein Befehl angegeben ist, oder /bin/sh, falls keine Vorgabe-Shell gefunden wird, aus. Standardmäßig kann ein anderer Benutzer ausgewählt werden, indem --uid= verwandt oder dem Maschinennamen ein Benutzername und das Zeichen »@« vorangestellt wird. Verwenden Sie --setenv=, um Umgebungsvariablen für den ausgeführten Prozess zu setzen.

    Beachten Sie, dass machinectl shell den Exit-Code/Status des aufgerufenen Shell-Prozesses nicht weiterleitet. Verwenden Sie stattdessen systemd-run, falls diese Information benötigt wird (siehe unten).

    Der Einsatz des Befehls shell ohne Argumente (womit der aufgerufene Befehl oder die Shell auf dem lokalen Rechner ausgeführt wird) ist auf viele Arten ähnlich einer su(1)-Sitzung, isoliert aber anders als su die neue Sitzung von der ursprünglichen Sitzung, so dass kein Prozess und keine Sitzungseigenschaften gemeinsam benutzt werden und sie in einem sauberen und gut-definiertem Zustand ist. Sie wird in einer neuen Utmp-, Anmelde-, Audit-, Sicherheits- und Schlüsselbund-Sitzung nachverfolgt und wird keine Umgebungsvariablen oder Ressourcenbegrenzungen (und andere Eigenschaften) erben.

    Beachten Sie, dass anstelle des Befehls machinectl shell systemd-run(1) mit seinem Schalter --machine= verwandt werden kann, was nicht-interaktive Aktionen, detailliertere und systemnahere Konfiguration der betroffenen Unit sowie den Zugriff auf Laufzeit- und Exit-Code/Status-Informationen des aufgerufenen Shell-Prozesses ermöglicht. Verwenden Sie insbesondere den Schalter --wait von systemd-run, um Exit-Statusinformationen vom aufgerufenen Prozess weiterzuleiten. Verwenden Sie den Schalter --pty von systemd-run, um eine interaktive Shell zu erlangen, ähnlich zu machinectl shell. Im Allgemeinen wird systemd-run für Skripting-Zwecke bevorzugt. Beachten Sie allerdings, dass systemd-run höhere Privilegien als machinectl shell erlangen könnte.

    Hinzugefügt in Version 225.

enable NAME…, disable NAME…
    Aktiviert oder deaktiviert das Starten eines Containers mittels systemd-nspawn(1) als Systemdienst beim Systemstart. Dies aktiviert oder deaktiviert systemd-nspawn@.service, instanziiert für den angegebenen Maschinennamen, von der Wirkung ähnlich systemctl enable oder systemctl disable auf den Dienstenamen.

    Dieser Befehl lädt die Systemverwalterkonfiguration nach dem Abschluss der Aktion implizit neu. Beachten Sie, dass dieser Befehl Container nicht implizit startet oder ausschaltet, auf die agiert wurde. Falls dies gewünscht ist, kombinieren Sie den Befehl mit dem Schalter --now.

    Hinzugefügt in Version 219.

poweroff NAME…
    Schaltet einen oder mehrere Container aus. Dies wird durch Senden von SIGRTMIN+4 an den Init-Prozess des Containers ein Herunterfahren auslösen, wodurch Systemd-kompatible Init-Systeme sauber heruntergefahren werden. Verwenden Sie stop als Alias für poweroff. Diese Aktion funktioniert bei Containern, die keine systemd(1)-kompatiblen Init-Systeme, wie Sysvinit, ausführen, nicht. Verwenden Sie das (nachfolgend beschriebene) terminate, um einen Container oder eine VM sofort zu beenden, ohne sie sauber herunterzufahren.

    Hinzugefügt in Version 212.

reboot NAME…
    Startet einen oder mehrere Container neu. Dies wird durch Senden von SIGINT an den Init-Prozess des Containers einen Neustart auslösen. Dies ist grob äquivalent zum Drücken von Strg-Alt-Entf auf einem System außerhalb eines Containers und kompatibel mit Containern mit beliebigen Systemverwaltern. Verwenden Sie restart als Alias für reboot.

    Hinzugefügt in Version 209.

terminate NAME…
    Beendet die virtuelle Maschine oder den Container sofort, ohne ihn sauber herunterzufahren. Dies tötet alle Prozesse der virtuellen Maschine oder des Containers und gibt alle dieser Instanz zugeordneten Ressourcen frei. Verwenden Sie poweroff, um ein sauberes Herunterfahren anzufordern.

    Hinzugefügt in Version 206.

kill NAME…
    Sendet ein Signal an einen oder mehrere Prozesse der virtuellen Maschine oder des Containers. Dies bezieht sich auf Prozesse, wie sie vom Wirtsrechner gesehen werden, nicht Prozesse innerhalb der virtuellen Maschine oder des Containers. Wählen Sie die zu tötenden Prozesse mit --kill-whom=. Verwenden Sie --signal= zur Auswahl des zu sendenden Signals.

    Hinzugefügt in Version 206.

bind NAME PFAD [PFAD]
    Hängt eine Datei oder ein Verzeichnis vom Wirtssystem in den angegebenen Container mit »bind« ein. Das erste Pfadargument ist die Quelldatei oder das Quellverzeichnis auf dem Wirtssystem, das zweite Pfadargument ist die Zieldatei oder der Zielpfad im Container. Wenn Letzterer fehlt, wird dafür das gleiche wie der Quellpfad auf dem Wirtssystem verwandt. Bei der Kombination mit dem Schalter --read-only wird eine nur-lesbare Bind-Einhängung erstellt. Bei der Kombination mit dem Schalter --mkdir wird vor dem Einhängen der Zielpfad zuerst erstellt. Beachten Sie, dass diese Option derzeit nur für systemd-nspawn(1)-Container unterstützt wird, und nur wenn Benutzer-Namensräume (--private-users) nicht verwandt werden. Dieser Befehl unterstützt das Bind-Einhängen von Verzeichnissen, regulären Dateien, Geräteknoten, AF_UNIX-Socket-Knoten sowie FIFOs.

    Hinzugefügt in Version 219.

copy-to NAME PFAD [PFAD] --force
    Kopiert Dateien oder Verzeichnisse vom Wirtssystem in einen laufenden Container. Akzeptiert einen Container-Namen, gefolgt vom Quellpfad auf dem Wirtssystem und dem Zielpfad im Container. Falls der Zielpfad fehlt, wird dafür das gleiche wie der Quellpfad verwandt.

    Falls der Rechner und der Container den gleichen Benutzer- und Gruppennamensraum benutzen, wird die Dateieigentümerschaft durch numerische Benutzer- und Gruppenkennung für die Kopie erhalten, andernfalls gehören alle Dateien und Gruppen dem Benutzer und der Gruppe root (UID/GID 0).

    Hinzugefügt in Version 219.

copy-from NAME PFAD [PFAD] --force
    Kopiert Dateien oder Verzeichnisse aus dem Container auf den Rechner. Akzeptiert einen Container-Namen, gefolgt von einem Quellpfad im Container und dem Zielpfad im Rechner. Falls der Zielpfad entfällt, wird er identisch zum Quellpfad verwandt.

    Falls der Rechner und der Container den gleichen Benutzer- und Gruppennamensraum benutzen, wird die Dateieigentümerschaft durch numerische Benutzer- und Gruppenkennung für die Kopie erhalten, andernfalls gehören alle Dateien und Gruppen dem Benutzer und der Gruppe root (UID/GID 0).

    Hinzugefügt in Version 219.

  Abbild-Befehle

list-images
    Zeigt eine Liste von lokal installierten Container- und VM-Abbildern. Dies zählt alle rohen Platten-Abbilder und -Containerverzeichnisse und Teildatenträger in /var/lib/machines/ (und anderen Suchpfaden, siehe unten) auf. Verwenden Sie start (siehe oben), um einen Container aus den aufgeführten Abbildern auszuführen. Beachten Sie, dass standardmäßig Container, deren Namen mit einem Punkt (».«) beginnen, nicht angezeigt werden. Geben Sie --all an, um diese auch anzuzeigen. Beachten Sie, dass das besondere Abbild ».host« immer impliziet existiert und sich auf das Abbild bezieht, von dem der Rechner selbst gestartet wurde.

    Hinzugefügt in Version 219.

image-status [NAME…]
    Zeigt knappe Statusinformationen über einen oder mehrere Container- oder VM-Abbilder an. Diese Funktion ist zur Erzeugung menschenlesbarer Ausgabe gedacht. Verwenden Sie show-image (siehe unten), um stattdessen Computer-auswertbare Ausgabe zu erstellen.

    Hinzugefügt in Version 219.

show-image [NAME…]
    Zeigt Eigenschaften von einem oder mehreren registrierten virtuellen Maschinen oder Container-Abbildern oder dem Verwalter selbst an. Falls kein Argument angegeben ist, werden die Eigenschaften des Verwalters angezeigt. Falls NAME angegeben ist, werden die Eigenschaften dieser virtuellen Maschine oder des Container-Abbilds angezeigt. Standardmäßig werden leere Eigenschaften unterdrückt. Verwenden Sie --all, um diese auch anzuzeigen. Um bestimmte Eigenschaften zur Anzeige auszuwählen, verwenden Sie --property=. Dieser Befehl ist dafür gedacht, wenn Computer-auswertbare Ausgabe benötigt wird. Verwenden Sie image-status, falls Sie formatierte, menschenlesbare Ausgabe suchen.

    Hinzugefügt in Version 219.

edit NAME|DATEI
    Bearbeitet die Einstellungsdatei der angegebenen Maschinen. Siehe systemd.nspawn(5) für das Format der Einstellungsdatei. Falls keine bestehende Einstellungsdatei für die angegebene Maschine gefunden werden kann, erstellt edit automatisch eine komplett neue Einstellungsdatei unter /etc/systemd/nspawn/.

    Hinzugefügt in Version 254.

cat NAME|DATEI
    Zeigt die Einstellungsdatei der angegebenen Maschinen.

    Hinzugefügt in Version 254.

clone NAME NAME
    Klont einen Container- oder ein VM-Abbild. Die Argumente geben den Namen des zu klonenden und den Namen des frisch geklonten Abbildes an. Beachten Sie, dass einfache Container-Abbilder mit diesem Befehl in Btrfs-Teildatenträger-Abbilder geklont werden, falls dies das zugrundeliegende Dateisystem unterstützt. Beachten Sie, dass Klonen eines Container- oder VM-Abbildes für Dateisysteme optimiert ist, die »Kopieren-beim-Schreiben« unterstützen und für andere Dateisysteme, aufgrund von deren Beschränkungen, weniger effizient sein könnte.

    Beachten Sie, dass dieser Befehl den Rechnernamen, die Maschinenkennung und alle anderen Einstellungen, die diese Instanz identifizieren könnten, unverändert lässt. Das ursprüngliche Abbild und die geklonte Kopie werden daher beide diese Berechtigungsnachweise gemeinsam nutzen und es mag notwendig sein, diese in der Kopie manuell zu ändern.

    Wird dies mit dem Schalter --read-only kombiniert, dann wird ein nur-lesbares geklontes Abbild erstellt.

    Hinzugefügt in Version 219.

rename NAME NAME
    Benennt ein Container- oder VM-Abbild um. Die Argumente geben den Namen des umzubenennenden und den neuen Namen des Abbildes an.

    Hinzugefügt in Version 219.

read-only NAME [LOGISCH]
    Markiert ein Container- oder VM-Abbild nur-lesbar oder hebt dieses auf. Akzeptiert als Argumente einen VM- oder Container-Abbildnamen, gefolgt von einem logischen Wert. Falls der logische Wert fehlt, wird positiv impliziert, d.h. das Abbild wird als nur-lesbar markiert.

    Hinzugefügt in Version 219.

remove NAME…
    Entfernt eines oder mehrere Container- oder VM-Abbilder. Das besondere Abbild ».host«, das sich auf den Verzeichnisbaum des Rechners selbst bezieht, darf nicht entfernt werden.

    Hinzugefügt in Version 219.

set-limit [NAME] BYTE
    Setzt die maximale Größe in Byte, zu der ein bestimmtes Container- oder VM-Abbild, oder alle Abbilder auf der Platte anwachsen dürfen (Plattenkontingent). Akzeptiert entweder einen oder zwei Parameter. Der erste, optionale Parameter bezieht sich auf den Namen eines Containers oder einer VM. Falls angegeben, wird die Größenbegrenzung des angegebenen Abbilds geändert. Falls der Parameter fehlt, dann wird die Gesamtgrößenbegrenzung der Summe aller lokal gespeicherten Abbilder geändert. Das abschließende Argument gibt die Größenbegrenzung in Byte an, die üblichen Einheiten K, M, G, T können optional angehängt werden. Falls die Größenbegrenzung deaktiviert werden soll, geben Sie »-« als Größe an.

    Beachten Sie, dass die Container-bezogenen Größenbeschränkungen nur auf Btrfs-Dateisystemen unterstützt werden.

    Hinzugefügt in Version 220.

clean
    Entfernt versteckte VM- oder Container-Abbilder (oder alle). Dieser Befehl entfernt alle versteckten Maschinenabbilder aus /var/lib/machines/, d.h. solche, deren Namen mit einem Punkt beginnen. Verwenden Sie machinectl list-images --all, um eine Liste aller Maschinenabbilder zu sehen, einschließlich der versteckten.

    Bei der Kombination mit dem Schalter --all werden alle Abbilder entfernt, nicht nur die versteckten. Dieser Befehl leert effektiv /var/lib/machines/.

    Beachten Sie, dass Befehle wie importctl pull-tar oder importctl pull-raw normalerweise zuerst versteckte, nur-lesbare und unveränderte Maschinenabbilder aus dem heruntergeladenen Abbild erstellen, bevor sie eine schreibbare Arbeitskopie davon klonen, um mehrfaches Herunterladen zu vermeiden, falls Abbilder mehrmals verwandt werden. Verwenden Sie machinectl clean, um auf diese Art erstellte alte, versteckte Abbilder zu entfernen.

    Hinzugefügt in Version 230.

OPTIONEN

Die folgenden Optionen werden verstanden:

-p, --property=
    Bei der Anzeige von Maschinen- oder Abbildeigenschaften wird die Ausgabe auf bestimmte, durch die Argumente angegebene Eigenschaften beschränkt. Falls nicht angegeben, werden alle gesetzten Eigenschaften angezeigt. Das Argument sollte ein Eigenschaftsname, wie »Name«, sein. Falls mehr als einmal angegeben, werden alle Eigenschaften mit den angegebenen Namen angezeigt.

    Hinzugefügt in Version 206.

--value
    Bei der Ausgabe der Eigenschaften mit show wird nur der Wert angezeigt, der Eigenschaftsname und das »=« wird übersprungen.

    Hinzugefügt in Version 230.

-P
    Äquivalent zu --value --property=, d.h. zeigt den Wert der Eigenschaft ohne den Eigenschaftsnamen oder »=«. Beachten Sie, dass die einmalige Verwendung von -P auch die mit -p/--property= aufgeführten Eigenschaften betrifft.

    Hinzugefügt in Version 256.

-a, --all
    Bei der Anzeige der Maschinen- oder Abbildeigenschaften werden alle Eigenschaften angezeigt, unabhängig davon, ob sie gesetzt sind oder nicht.

    Beim Auflisten von VM- oder Container-Abbildern werden Abbilder, deren Name mit einem Punkt (».«) beginnt, auch aufgeführt.

    Beim Bereinigen von VM- oder Container-Abbildern werden alle Abbilder, nicht nur die versteckten, entfernt.

    Hinzugefügt in Version 206.

-l, --full
    Verkürzt die Prozessbaumeinträge oder die -tabelle nicht. Dies impliziert --max-addresses=full.

    Hinzugefügt in Version 206.

--kill-whom=
    Wählt bei der Verwendung mit kill den zu tötenden Prozess aus. Muss entweder leader, supervisor oder all sein, um auszuwählen, ob nur der Leitungsprozess der Maschine, der Supervisor-Prozess der Maschine oder alle Prozesse der Maschine getötet werden sollen. Falls nicht angegeben, ist die Vorgabe all.

    Hinzugefügt in Version 206.

-s, --signal=
    Sucht bei der Verwendung mit kill das Signal aus, das an ausgewählte Prozesse gesandt wird. Muss eines der gut bekannten Signalkennungen wie SIGTERM, SIGINT oder SIGSTOP sein. Falls weggelassen, ist die Vorgabe SIGTERM.

    Der besondere Wert »help« wird alle bekannten Werte darstellen und das Programm wird sich sofort beenden; der besondere Wert »list« wird alle bekannten Werte zusammen mit ihren numerischen Signalnummern darstellen und das Programm wird sich sofort beenden.

--uid=
    Wählt bei der Verwendung mit dem Befehl shell die Benutzerkennung aus, unter der die interaktive Shell-Sitzung geöffnet werden soll. Falls das Argument des Befehls shell auch einen Benutzernamen angibt, wird diese Option ignoriert. Falls der Name nicht auf eine der Arten angegeben ist, dann wird standardmäßig »root« verwandt. Beachten Sie, dass dieser Schalter nicht für den Befehl login unterstützt wird (siehe unten).

    Hinzugefügt in Version 225.

-E NAME[=WERT], --setenv=NAME[=WERT]
    Bei der Verwendung mit dem Befehl shell wird eine Umgebungsvariable für die ausgeführte Shell gesetzt. Diese Option kann mehrfach angegeben werden, um mehrere Variablen zu setzen. Wenn »=« und WERT fehlen, wird der Wert der Variablen mit dem gleichen Namen in der Programmumgebung verwandt.

    Beachten Sie, dass diese Option für den Befehl login nicht unterstützt wird.

    Hinzugefügt in Version 230.

--mkdir
    Erstellt bei der Verwendung mit bind die Zieldatei oder das Zielverzeichnis, bevor die Bind-Einhängung angewandt wird. Beachten Sie, dass der Name dieser Option zwar anzeigt, dass sie nur für Verzeichnisse geeignet ist, sie aber auch den Zieldateiknoten, über den eingehängt werden soll, falls das einzuhängende Objekt kein Verzeichnis, sondern eine reguläre Datei, ein Geräteknoten, ein Socket oder ein FIFO ist, erstellt.

    Hinzugefügt in Version 219.

--read-only
    Erstellt bei der Verwendung mit bind eine nur lesbare Bind-Einhängung.

    Bei der Verwendung mit clone wird ein nur-lesbares Container- oder VM-Abbild erstellt.

    Hinzugefügt in Version 219.

-n, --lines=
    Steuert bei der Verwendung mit status die Anzahl der anzuzeigenden Journal-Einträge, gezählt vom neusten. Akzeptiert eine positive Ganzzahl als Argument. Standardmäßig 10.

    Hinzugefügt in Version 219.

-o, --output=
    Steuert bei der Verwendung mit status die Formatierung der angezeigten Journal-Einträge. Für die Auswahlmöglichkeiten siehe journalctl(1). Standardmäßig »short«.

    Hinzugefügt in Version 219.

--runner=nspawn|vmspawn
    Bei der Arbeit auf Maschinen wird damit ausgwählt, ob systemd-nspawn(1) oder systemd-vmspawn(1) verwandt werden soll. Standardmäßig wird systemd-nspawn(1) verwandt.

    Hinzugefügt in Version 256.

-V
    -V ist eine Abkürzung für --runner=vmspawn.

    Hinzugefügt in Version 256.

--now
    Wird dies mit enable oder disable verwandt, werden die Container auch gestartet oder ausgeschaltet. Die Start- oder Ausschaltaktion wird nur ausgeführt, wenn die entsprechende Aktivierungs- oder Deaktivierungsaktion erfolgreich war.

    Hinzugefügt in Version 253.

--force
    Ersetzt die Zieldatei beim Kopieren von Dateien.

    Hinzugefügt in Version 219.

--max-addresses=
    Begrenzt bei der Verwendung mit dem Befehl list-machines die Anzahl der für jede Maschine angezeigten IP-Adressen. Standardmäßig 1. Durch Verwendung von »all« können alle Adressen angefordert werden. Falls die Begrenzung 0 ist, wird die Adressspalte nicht angezeigt. Falls andernfalls die Maschine mehr Adressen als angezeigt hat, dann folgt »…« der letzten Adresse.

    Hinzugefügt in Version 232.

-q, --quiet
    Unterdrückt bei der Ausführung zusätzliche informative Ausgaben.

    Hinzugefügt in Version 236.

-H, --host=
    Führt die Aktion aus der Ferne aus. Geben Sie den Rechnernamen oder einen Benutzernamen und Rechnernamen (getrennt durch »@«) an, zu dem verbunden werden soll. Dem Rechnernamen darf optional ein Port, auf dem SSH auf Anfragen wartet, getrennt durch »:« und dann ein Container-Name, abgetrennt durch »/«, folgen, womit direkt zu einem bestimmten Container auf dem angegebenen Rechner verbunden wird. Dies verwendet SSH, um mit der Maschinen-Verwalterinstanz auf dem Rechner in der Ferne zu kommunizieren. Container-Namen dürfen mit machinectl -H RECHNER aufgezählt werden. Setzen Sie IPv6-Adressen in Klammern.

-M, --machine=
    Verbindet zu dem in dem lokalen Container laufenden systemd-machined.service(8), um die angegebenen Aktionen innerhalb des Containers auszuführen.

    Hinzugefügt in Version 235.

--no-pager
    Leitet die Ausgabe nicht an ein Textanzeigeprogramm weiter.

--no-legend
    Gibt die Legende nicht aus, d.h. die Spaltenköpfe und die Fußzeile mit Hinweisen.

--no-ask-password
    Befragt den Benutzer nicht für Authentifizierung für privilegierte Aktionen.

-h, --help
    Zeigt einen kurzen Hilfetext an und beendet das Programm.

--version
    Zeigt eine kurze Versionszeichenkette an und beendet das Programm.

MASCHINEN- UND ABBILDNAMEN

Das Werkzeug machinectl agiert auf Maschinen und Abbildern, deren Namen strengen Regeln folgen müssen. Maschinennamen müssen für den Einsatz als Rechnernamen geeignet sein und daher einer konservativen Teilmenge der DNS- und UNIX/Linux-Semantik folgen. Insbesondere müssen sie aus einer oder mehreren, durch Punkte getrennten nicht-leeren Kennzeichnungszeichenketten bestehen. Es sind keine Punkte am Anfang oder Ende erlaubt. Es ist keine Abfolge von mehreren Punkten erlaubt. Die Kennzeichnungszeichenkette darf nur aus alphanumerischen Zeichen sowie dem Bindestrich bestehen. Die maximale Länge von Maschinennamen ist 64 Zeichen.

Eine besondere Maschine mit dem Namen ».host« bezieht sich auf den laufenden Rechner selbst. Dies ist auch für die Ausführung von Aktionen oder Untersuchungen des Rechners selbst nützlich. Beachten Sie, dass machinectl list diese besondere Maschine nur anzeigt, wenn der Schalter --all angegeben ist.

Anforderungen an Abbildnamen sind allerdings weniger streng. Sie müssen gültiges UTF-8 und als Dateinamen geeignet sein (und damit weder der einzelne noch der doppelte Punkt sein noch Schrägstriche enthalten) sowie keine Steuerzeichen enthalten. Da viele Aktionen nach einem Abbild über den Namen der angeforderten Maschine suchen, wird empfohlen, Abbilder auf die gleiche strenge Art wie Maschinen zu benennen.

Ein besonderes Abbild mit dem Namen ».host« bezieht sich auf das Abbild des laufenden Rechners. Er wird daher konzeptionell auf den oben beschriebenen Maschinennamen ».host« abgebildet. Beachten Sie, dass machinectl list-images dieses besondere Abbild auch nur anzeigen wird, wenn --all angegeben ist.

DATEIEN UND VERZEICHNISSE

Maschinenabbilder werden bevorzugt in /var/lib/machines/ gespeichert, aber es wird auch in /usr/local/lib/machines/ und /usr/lib/machines/ nach ihnen gesucht. Aus Kompatibilitätsgründen wird auch das Verzeichnis /var/lib/container/ durchsucht. Beachten Sie, dass unterhalb von /usr/ gespeicherte Abbilder immer als nur-lesbar betrachtet werden. Es ist möglich, Maschinenabbilder von anderen Verzeichnissen nach /var/lib/machines/ zu symlinken, um sie der Steuerung durch machinectl zur Verfügung zu stellen.

Beachten Sie, dass einige Abbildaktionen nur auf Btrfs-Dateisystemen unterstützt werden, effizient oder atomar sind.

systemd-nspawn(1) und machinectl verstehen Plattenabbilder in drei Formaten:

    • Ein einfacher Verzeichnisbaum, der die Dateien und Verzeichnisse des zu startenden Containers enthält.

    • Teildatenträger (auf Btrfs-Dateisystemen), die ähnlich zu den oben beschriebenen einfachen Verzeichnissen sind. Sie verfügen allerdings über zusätzliche Vorteile, wie effizientes Klonen und Kontingentmeldungen.

    • »Rohe« Plattenabbilder, d.h. Binärabbilder von Platten mit einer GPT- oder MBR-Partitionstabelle. Abbilder dieses Typs sind normale Dateien mit der Endung ».raw«.

Siehe systemd-nspawn(1) für weitere Informationen über Abbildformate, insbesondere dessen Optionen --directory= und --image=.

BEISPIELE

Beispiel 1. Ein Ubuntu-RAW-Abbild herunterladen, ein Passwort für root setzen, es als ein Dienst starten

    # importctl pull-raw -mN \
          https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64-disk-kvm.img \
          jammy
    # systemd-firstboot --image=/var/lib/machines/jammy.raw --prompt-root-password --force
    # machinectl start jammy
    # machinectl login jammy

Dies lädt das angegebene .raw-Abbild herunter und stellt es unter dem lokalen Namen »jammy« zu Verfügung. Dann wird mittels systemd-firstboot(1) darin ein Passwort für root gesetzt. Danach wird die Maschine als Systemdienst gestartet. Mit dem letzten Befehl wird eine Anmeldeshell im Container angefordert.

EXIT-STATUS

Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

UMGEBUNGSVARIABLEN

$SYSTEMD_LOG_LEVEL
    Die maximale Protokollierstufe für ausgegebene Meldungen (Meldungen mit einer höheren Protokollierstufe, d.h. weniger wichtige, werden unterdrückt). Akzeptiert eine Kommata-getrennte Liste von Werten. Ein Wert kann einer der folgenden sein (in Reihenfolge absteigender Bedeutung): emerg, alert, crit, err, warning, notice, info, debug oder eine Ganzzahl im Bereich 0…7. Siehe syslog(3) für weitere Informationen. Jedem Wert kann optional eine Zeichenkette aus console, syslog, kmsg oder journal gefolgt von einem Doppelpunkt vorangestellt werden, um die maximale Protokollierstufe für dieses spezielle Protokollierziel zu setzen (d.h. SYSTEMD_LOG_LEVEL=debug,console:info legt fest, dass auf der Stufe »debug« protokolliert werden soll, außer beim Protokollieren auf die Konsole, die auf Stufe »info« erfolgen soll). Beachten Sie, dass die globale maximale Protokollierstufe Priorität gegenüber jeder zielbezogenen maximalen Protokollierstufe hat.

$SYSTEMD_LOG_COLOR
    Ein logischer Wert. Falls true, werden auf das TTY geschriebene Nachrichten gemäß ihrer Priorität eingefärbt.

    Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Nachrichten gemäß ihrer Protokollierungsstufe einfärben.

$SYSTEMD_LOG_TIME
    Ein logischer Wert. Falls true, wird den Protokollnachrichten der Konsole ein Zeitstempel vorangestellt.

    Diese Einstellung ist nur nützlich, falls die Nachrichten direkt auf das Terminal oder in eine Datei geschrieben werden, da journalctl(1) und andere Werkzeuge, die Protokolle anzeigen, selbständig Zeitstempel basierend auf ihren Metadaten den Nachrichten anhängen.

$SYSTEMD_LOG_LOCATION
    Ein logischer Wert. Falls true, wird den Protokollnachrichten ein Dateiname und eine Zeilenummer in dem Quellcode, aus dem die Nachrichten stammen, vorangestellt.

    Beachten Sie, dass der Protokollierort sowieso oft als Metadaten zu den Journal-Einträgen angehängt ist. Die Aufnahme in den Nachrichtentext kann bei der Fehlersuche in Programmen dennoch praktisch sein.

$SYSTEMD_LOG_TID
    Ein logischer Wert. Falls true, wird den Nachrichten die aktuelle numerische Thread-Kennung (TID) vorangestellt.

    Beachten Sie, dass diese Informationen sowieso als Metadaten an Journal-Einträge angehängt wird. Die Aufnahme direkt im Nachrichtentext kann aber trotzdem bei der Fehlersuche in Programmen praktisch sein.

$SYSTEMD_LOG_TARGET
    Das Ziel für Protokolliernachrichten. Entweder console (auf das angehängte TTY protokollieren), console-prefixed (auf das angehängte TTY protokollieren, aber die Protokollierstufe und »Einrichtung« voranstellen, siehe syslog(3)), kmsg (in den zirkulären Kernel-Protokollpuffer protokollieren), journal (in das Journal protokollieren), journal-or-kmsg (in das Journal protokollieren, falls verfügbar, und andernfalls nach Kmsg), auto (das geeignete Protokollierziel automatisch ermitteln, die Vorgabe) oder null (die Protokollierung deaktivieren).

$SYSTEMD_LOG_RATELIMIT_KMSG
    Ob Kmsg ratenlimitiert werden soll oder nicht. Akzeptiert einen logischen Wert. Standardmäßig »true«. Falls deaktiviert, wird Systemd die nach Kmsg geschriebenen Meldungen nicht ratenlimitieren.

$SYSTEMD_PAGER, $PAGER
    Zu verwendendes Textanzeigeprogramm, wenn --no-pager nicht angegeben ist. Falls gesetzt, wird $SYSTEMD_PAGER verwandt, andernfalls $PAGER. setzt $PAGER außer Kraft. Falls weder $SYSTEMD_PAGER noch $PAGER gesetzt sind, wird eine Reihe wohlbekannter Implementierungen von Textanzeigeprogrammen der Reihe nach ausprobiert, einschließlich less(1) und more(1), bis eines gefunden wird. Falls keine Implementierung eines Textanzeigeprogramms gefunden wird, wird keines aufgerufen. Setzen dieser Umgebungsvariablen auf die leere Zeichenkette oder den Wert »cat« ist äquivalent zur Übergabe von --no-pager.

    Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, können $SYSTEMD_PAGER und $PAGER nur zum Deaktivieren des Seitenanzeigeprogramms (mit »cat« oder »«) verwandt werden und werden ansonsten ignoriert.

$SYSTEMD_LESS
    Setzt die an less übergebenen Optionen (standardmäßig »FRSXMK«) außer Kraft.

    Benutzer könnten insbesondere zwei Optionen ändern wollen:

    K
        Diese Option weist das Textanzeigeprogramm an, sich sofort beim Druck von Strg-C zu beenden. Um less die Handhabung von Strg-C selbst zum Umschalten auf die Eingabeaufforderung zu erlauben, setzen Sie diese Option zurück.

        Falls der Wert von $SYSTEMD_LESS kein »K« enthält und less das aufgerufene Textanzeigeprogramm ist, wird Strg+C durch das Programm ignoriert und muss durch das Textanzeigeprogramm selbst gehandhabt werden.

    X
        Diese Option weist das Textanzeigeprogramm an, keine Termcap-Initialisierungs- und -Deinitalisierungszeichenketten an das Terminal zu senden. Dies ist standardmäßig gesetzt, damit die Darstellung von Befehlen selbst nach dem Beenden des Textanzeigeprogramms sichtbar bleibt. Allerdings stehen dadurch einige Funktionen des Textanzeigeprogramms nicht zur Verfügung; insbesondere ist das Scrollen in der Ausgabe mit der Maus nicht möglich.

    Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESS keine Auswirkungen auf die Ausführung von less(1) durch systemd(1)-Werkzeuge hat.

    Siehe less(1) für weitere Ausführungen.

$SYSTEMD_LESSCHARSET
    Setzt den an less zu übergebenden Zeichensatz (standardmäßig »utf-8«, falls das aufrufende Terminal als UTF-8-kompatibel erkannt wurde) außer Kraft.

    Beachten Sie, dass das Setzen der regulären Umgebungsvariablen $LESSCHARSET keine Auswirkungen auf die Ausführungen von less(1) durch systemd(1)-Werkzeuge hat.

$SYSTEMD_PAGERSECURE
    Typische Seitenanzeigeprogramme wie less(1) unterstützen nebem dem seitenweisen Anzeigen (d.h. dem Durchlaufen der Ausgabe) das Öffnen von oder Schreiben in andere Dateien und die Ausführung von beliebigen Shell-Befehlen. Werden Befehle mit erhöhten Berechtigungen, beispielsweise unter sudo(8) oder pkexec(1), aufgerufen, wird das Seitenanzeigeprogramm zur Sicherheitsgrenze. Es muss darauf geachtet werden, dass nur Programme mit streng begrenzter Funktionalität als Seitenanzeigeprogramm verwandt werden und unerwünschte interaktive Funktionalitäten wie das Öffnen oder Erstellen von neuen Dateien oder das Starten von Subprozessen nicht erlaubt sind. Der »Sichere Modus« für das Seitenanzeigeprogramm kann wie nachfolgend beschrieben aktiviert werden, falls das Seitenanzeigeprogramm dies unterstützt (die meisten Seitenanzeigeprogramme sind nicht so geschrieben, dass sie dies berücksichtigen). Es wird empfohlen, den »Sicheren Modus« explizit zu aktivieren oder das Seitenanzeigeprogramm komplett mittels --no-pager oder PAGER=cat zu deaktivieren, wenn nicht vertrauenswürdigen Benutzern die Ausführung von Programmen mit erhöhten Privilegien erlaubt wird.

    Diese Option akzeptiert ein logisches Argument. Ist es auf »true« gesetzt, wird der »Sichere Modus« des Seitenanzeigeprogramms aktiviert. Im »Sicheren Modus« wird LESSSECURE=1 beim Aufruf des Seitenanzeigeprogramms gesetzt. Dies weist das Seiteanzeigeprogramm an, Befehle zum Öffnen oder Erstellen von neuen Dateien sowie das Starten von Subprozessen zu deaktivieren. Derzeit ist nur von less(1) bekannt, dass es diese Variable versteht und den »Sicheren Modus« implementiert.

    Ist diese Variable auf »false« gesetzt, unterliegt das Seitenanzeigeprogramm keinen Beschränkungen. Setzen auf SYSTEMD_PAGERSECURE=0 oder das Beibehalten der Variable von der geerbten Umgebung könnte den Benutzern die Ausführung beliebiger Befehle erlauben.

    Ist $SYSTEMD_PAGERSECURE nicht gesetzt, versuchen die Systemd-Werkzeuge automatisch herauszufinden, ob der »Sicheren Modus« aktiviert werden soll und ob das Seitenanzeigeprogramm dies unterstützt. Der »Sichere Modus« wird aktiviert, falls die effektive UID nicht mit der UID des Eigentümers der Anmeldesitzung übereinstimmt, siehe geteuid(2) und sd_pid_get_owner_uid(3), oder wenn die Ausführung unter Werkzeugen wie sudo(8) oder ähnlichem erfolgt ($SUDO_UID ist gesetzt [1]). In diesen Fällen wird SYSTEMD_PAGERSECURE=1 gesetzt und Seitenanzeigeprogramme, von denen nicht bekannt ist, dass sie den »Sicheren Modus« unterstützen, werden überhaupt nicht verwandt. Beachten Sie, dass diese automatische Erkennung nur die typischsten Mechanismen zur Erlangung von Privilegien abdeckt und dem Komfort dient. Es wird empfohlen, explizit $SYSTEMD_PAGERSECURE zu setzen oder das Seitenanzeigeprogramm zu deaktivieren.

    Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt sein muss, damit die Variablen $SYSTEMD_PAGER oder $PAGER (außer zum Deaktivieren des Seitenanzeigeprogramms) berücksichtigt werden.

$SYSTEMD_COLORS
    Akzeptiert ein logisches Argument oder einen besonderen Wert. Standardmäßig (nicht gesetzt) werden systemd und zugehörige Hilfswerkzeuge in ihrer Ausgabe Farben verwenden, falls dies möglich ist. Falls $COLORTERM auf »truecolor« oder »24bit« gesetzt ist, werden 24-bit-Farben aktiviert, ansonsten 256 Farben, außer wenn $NO_COLOR gesetzt ist oder $TERM anzeigt, dass Farben deaktiviert sind.

    true
        Identisch zu nicht gesetzt, außer dass $NO_COLOR ignoriert wird.

    false
        Die Ausgabe erfolgt monochrom.

    »16«, »256«, »24bit«
        Verwendet immer die 16, 256 bzw. 24-bit-ANSI-Basisfarben.

    »auto-16«, »auto-256«, »auto-24bit«
        Verwendet die angegebene Menge an Farben, abhängig von $TERM und womit die Konsole verbunden ist.

$SYSTEMD_URLIFY
    Dies muss ein logischer Wert sein. Er steuert, ob anklickbare Links für Terminal-Emulatoren, die dies unterstützen, erstellt werden sollen. Dies kann angegeben werden, um die Entscheidung, die systemd basierend auf $TERM und anderen Bedingungen trifft, außer Kraft zu setzen.

SIEHE AUCH

systemd(1), systemd-machined.service(8), systemd-nspawn(1), systemd.special(7), importctl(1), tar(1), xz(1), gzip(1), bzip2(1), zstd(1)

ANMERKUNGEN

1.  Es wird für andere Werkzeuge empfohlen, $SUDO_UID geeignet zu setzen und zu überprüfen und es als allgemeine Schnittstelle zu behandeln.

Ü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 (https://www.gnu.org/licenses/gpl-3.0.html) 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 (debian-l10n-german@lists.debian.org).