machinectl - Steuert den Systemd-Maschinenverwalter
ÜBERSICHT
machinectl [OPTIONEN…] {BEFEHL}
[NAME…]
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.
Die folgenden Befehle werden verstanden:
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.
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.
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 oder
all sein,
um auszuwählen, ob nur der Leitungsprozess 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.
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 Binde- und dem Unterstrich 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.
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=.
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.
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein
Fehlercode ungleich Null.
$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. Wenn true, werden
systemd und verwandte Hilfswerkzeuge Farben in ihrer Ausgabe verwenden,
andernfalls wird die Ausgabe einfarbig sein. Zusätzlich kann die
Variable eine der folgenden besonderen Werte annehmen: »16«,
»256«, um die Verwendung von Farbe auf die grundlegenden 16 bzw.
256 ANSI-Farben zu beschränken. Dies kann festgelegt werden, um die auf
$TERM und der vorliegenden Verbindung der Konsole basierende
automatische Entscheidung außer Kraft zu setzen.
$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.
systemd(1), systemd-machined.service(8),
systemd-nspawn(1), systemd.special(7), importctl(1),
tar(1), xz(1), gzip(1), bzip2(1)
- 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 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.