- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
MACHINECTL(1) | machinectl | 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:
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:
Abbilder können mittels des Werkzeugs importctl(1) heruntergeladen sowie im- und exportiert werden.
BEFEHLE¶
Die folgenden Befehle werden verstanden:
Maschinenbefehle¶
list
Hinzugefügt in Version 206.
status NAME…
Hinzugefügt in Version 206.
show [NAME…]
Hinzugefügt in Version 206.
start NAME…
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]
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…]]]
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…
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…
Hinzugefügt in Version 212.
reboot NAME…
Hinzugefügt in Version 209.
terminate NAME…
Hinzugefügt in Version 206.
kill NAME…
Hinzugefügt in Version 206.
bind NAME PFAD [PFAD]
Hinzugefügt in Version 219.
copy-to NAME PFAD [PFAD] --force
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
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
Hinzugefügt in Version 219.
image-status [NAME…]
Hinzugefügt in Version 219.
show-image [NAME…]
Hinzugefügt in Version 219.
edit NAME|DATEI
Hinzugefügt in Version 254.
cat NAME|DATEI
Hinzugefügt in Version 254.
clone NAME NAME
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
Hinzugefügt in Version 219.
read-only NAME [LOGISCH]
Hinzugefügt in Version 219.
remove NAME…
Hinzugefügt in Version 219.
set-limit [NAME] BYTE
Beachten Sie, dass die Container-bezogenen Größenbeschränkungen nur auf Btrfs-Dateisystemen unterstützt werden.
Hinzugefügt in Version 220.
clean
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=
Hinzugefügt in Version 206.
--value
Hinzugefügt in Version 230.
-P
Hinzugefügt in Version 256.
-a, --all
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
Hinzugefügt in Version 206.
--kill-whom=
Hinzugefügt in Version 206.
-s, --signal=
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=
Hinzugefügt in Version 225.
-E NAME[=WERT], --setenv=NAME[=WERT]
Beachten Sie, dass diese Option für den Befehl login nicht unterstützt wird.
Hinzugefügt in Version 230.
--mkdir
Hinzugefügt in Version 219.
--read-only
Bei der Verwendung mit clone wird ein nur-lesbares Container- oder VM-Abbild erstellt.
Hinzugefügt in Version 219.
-n, --lines=
Hinzugefügt in Version 219.
-o, --output=
Hinzugefügt in Version 219.
--runner=nspawn|vmspawn
Hinzugefügt in Version 256.
-V
Hinzugefügt in Version 256.
--now
Hinzugefügt in Version 253.
--force
Hinzugefügt in Version 219.
--max-addresses=
Hinzugefügt in Version 232.
-q, --quiet
Hinzugefügt in Version 236.
-H, --host=
-M, --machine=
Hinzugefügt in Version 235.
--no-pager
--no-legend
--no-ask-password
-h, --help
--version
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 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.
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:
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
$SYSTEMD_LOG_COLOR
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
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
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
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
$SYSTEMD_LOG_RATELIMIT_KMSG
$SYSTEMD_PAGER
Beachten Sie: Falls $SYSTEMD_PAGERSECURE nicht gesetzt ist, dann wird $SYSTEMD_PAGER (sowie $PAGER) ohne Rückmeldung ignoriert.
$SYSTEMD_LESS
Benutzer könnten insbesondere zwei Optionen ändern wollen:
K
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
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
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
Hinweis: Wenn Befehle mit erhöhten Rechten ausgeführt werden, beispielsweise mittels sudo(8) oder pkexec(1), muss Vorsicht walten gelassen werden, um sicherzustellen, dass keine ungeplanten interaktiven Funktionalitäten aktiviert werden. Der »sichere« Modus für das Textanzeigeprogramm kann wie oben beschrieben automatisch aktiviert werden. Durch Setzen von SYSTEMD_PAGERSECURE=0 oder durch Nichtenfernen dieser Einstellung aus der ererbten Umgebung wird es dem Benutzer ermöglicht, beliebige Befehle auszuführen. Beachten Sie, dass auch $SYSTEMD_PAGERSECURE gesetzt werden muss, falls die Variablen $SYSTEMD_PAGER oder $PAGER berücksichtigt werden sollen. Es kann sinnvoll sein, stattdessen das Textanzeigeprogramm komplett mit --no-pager zu deaktivieren.
$SYSTEMD_COLORS
$SYSTEMD_URLIFY
SIEHE AUCH¶
systemd(1), systemd-machined.service(8), systemd-nspawn(1), systemd.special(7), importctl(1), tar(1), xz(1), gzip(1), bzip2(1)
Ü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 256.5 |