SYSTEMCTL(1)

BEZEICHNUNG
systemctl - Steuerung des Systemd-Systems und des Diensteverwalters

ÜBERSICHT

systemctl [OPTIONEN…] BEFEHL [UNIT…]

BESCHREIBUNG

systemctl kann zum Prüfen und Steuern des Zustandes des »Systemd«-Systems und -Diensteverwalters verwandt werden. Bitte lesen Sie systemd(1) für eine Einführung in die grundlegenden Konzepte und Funktionalitäten, die dieses Werkezeug verwaltet.

BEFEHLE

Die folgenden Befehle werden verstanden:

  Unit-Befehle (Untersuchung und Veränderung)

list-units [MUSTER…]
    Listet Units auf, die systemd derzeit im Speicher hat. Dies schließt Units ein, die entweder direkt oder über eine Abhängigkeit referenziert sind, Units, die durch Anwendungen programmatisch festgelegt sind und Units, die in der Vergangenheit aktiv waren und fehlschlugen. Standardmäßig werden nur Units, die aktiv sind, wartende Aufträge haben oder die fehlschlugen, angezeigt; dies kann mit der Option --all geändert werden. Falls eines oder mehrere MUSTER angegeben sind, werden nur Units, die auf diese passen, angezeigt. Die angezeigten Units werden zusätzlich durch --type= und --state= gefiltert, falls diese Optionen angegeben sind.

    Beachten Sie, dass dieser Befehl keine Unit-Vorlagen zeigt, sondern nur Instanzen von Unit-Vorlagen. Unit-Vorlagen, die nicht instanziiert sind, können nicht ausgeführt werden und werden daher niemals in der Ausgabe dieses Befehls auftauchen. Konkret bedeutet dies, dass foo@.service niemals in dieser Liste angezeigt wird – außer instanziiert, d.h. als foo@bar.service. Verwenden Sie list-unit-files (siehe unten), um installierte Unit-Vorlagendateien aufzulisten.

    Produziert eine Ausgabe ähnlich zu

          UNIT                         LOAD   ACTIVE SUB     DESCRIPTION
          sys-module-fuse.device       loaded active plugged /sys/module/fuse
          -.mount                      loaded active mounted Root Mount
          boot-efi.mount               loaded active mounted /boot/efi
          systemd-journald.service     loaded active running Journal Service
          systemd-logind.service       loaded active running Login Service
        ● user@1000.service            loaded failed failed  User Manager for UID 1000
          …
          systemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of Temporary Directories
        LOAD   = Reflects whether the unit definition was properly loaded.
        ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
        SUB    = The low-level unit activation state, values depend on unit type.
        123 loaded units listed. Pass --all to see loaded but inactive units, too.
        To show all installed unit files use 'systemctl list-unit-files'.

    Die Kopfzeilen und die letzte Unit des angegebenen Typs werden unterstrichen, falls das Terminal dies unterstützt. Ein farbiger Punkt wird neben den Diensten, die maskiert, nicht gefunden oder sonstwie fehlgeschlagen sind, angezeigt.

    Die Spalte LOAD zeigt den Ladezustand, der einer aus loaded, not-found, bad-setting, error, masked ist. Die Spalte ACTIVE zeigt den allgemeinen Unit-Zustand, der einer der folgenden ist:

    Tabelle 1. Unit-AKTIVITÄTS-Zustände
    Zustand | Beschreibung
    active | Gestartet, gebunden, eingesteckt … abhängig vom Unit-Typ.
    inactive | Gestoppt, losgelöst, ausgesteckt … abhängig vom Unit-Typ.
    failed | Ähnlich zu inactive, aber die Unit schlug irgendwie fehl (Prozess lieferte beim Exit einen Fehler-Code, stürzte ab, eine Aktion ist in eine Zeitüberschreitung gelaufen oder nach zu vielen Neustarts).
    activating | Änderung von inactive auf active.
    deactivating | Änderung von active auf inactive.
    maintenance | Unit ist inactive und eine Wartungsaktion läuft derzeit.
    reloading | Unit ist active und sie lädt ihre Konfiguration neu.
    refreshing | Unit ist active und es wird eine neue Einhängung in ihrem Namensraum aktiviert.

    Die Spalte SUB zeigt den Unit-Typ-spezifischen detaillierten Zustand der Unit, mögliche Werte hängen vom Unit-Typ ab. Die Liste der möglichen LOAD-, ACTIVE- und SUB-Zustände ist nicht konstant und neue Systemd-Veröffentlichungen können sowohl Werte hinzufügen als auch welche entfernen.

        systemctl --state=help

    Der Befehl kann zur Anzeige der aktuell möglichen Menge von Werten verwandt werden.

    Dies ist der Standardbefehl.

list-automounts [MUSTER…]
    Listet aktuell im Speicher befindliche Automount-Units, sortiert nach dem Einhängepfad, auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur Automount-Units, die darauf passen, angezeigt. Produziert Ausgabe ähnlich zu

        WHAT        WHERE                    MOUNTED IDLE TIMEOUT UNIT
        /dev/sdb1   /mnt/test                no      120s         mnt-test.automount
        binfmt_misc /proc/sys/fs/binfmt_misc yes     0            proc-sys-fs-binfmt_misc.automount
        2 automounts listed.

    Siehe auch --show-types, --all und --state=.

    Hinzugefügt in Version 252.

list-paths [MUSTER…]
    Listet aktuell im Speicher befindliche Pfad-Units, sortiert nach dem Pfad, auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur Pfad-Units, die darauf passen, angezeigt. Produziert Ausgabe ähnlich zu

        PATH                           CONDITION         UNIT                               ACTIVATES
        /run/systemd/ask-password      DirectoryNotEmpty systemd-ask-password-plymouth.path systemd-ask-password-plymouth.service
        /run/systemd/ask-password      DirectoryNotEmpty systemd-ask-password-wall.path     systemd-ask-password-wall.service
        /var/cache/cups/org.cups.cupsd PathExists        cups.path                          cups.service
        3 paths listed.

    Siehe auch --show-types, --all und --state=.

    Hinzugefügt in Version 254.

list-sockets [MUSTER…]
    Listet aktuell im Speicher befindliche Socket-Units, sortiert nach der Adresse, auf der sie auf Anfragen warten, auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur Socket-Units, die darauf passen, angezeigt. Produziert Ausgabe ähnlich zu

        LISTEN           UNIT                        ACTIVATES
        kobject-uevent 1 systemd-udevd-kernel.socket systemd-udevd.service
        /dev/rfkill      systemd-rfkill.socket       systemd-rfkill.service
        …
        5 sockets listed.

    Beachten Sie: Da die Adressen Leerzeichen enthalten können, ist diese Ausgabe nicht für die programmatische Verarbeitung geeignet.

    Siehe auch --show-types, --all und --state=.

    Hinzugefügt in Version 202.

list-timers [MUSTER…]
    Listet aktuell im Speicher befindliche Timer-Units, sortiert nach der Zeit, zu der sie ablaufen, auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur Units, die darauf passen, angezeigt. Produziert Ausgabe ähnlich zu

        NEXT                         LEFT          LAST                         PASSED     UNIT                         ACTIVATES
        -                            -             Thu 2017-02-23 13:40:29 EST  3 days ago ureadahead-stop.timer        ureadahead-stop.service
        Sun 2017-02-26 18:55:42 EST  1min 14s left Thu 2017-02-23 13:54:44 EST  3 days ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
        Sun 2017-02-26 20:37:16 EST  1h 42min left Sun 2017-02-26 11:56:36 EST  6h ago     apt-daily.timer              apt-daily.service
        Sun 2017-02-26 20:57:49 EST  2h 3min left  Sun 2017-02-26 11:56:36 EST  6h ago     snapd.refresh.timer          snapd.refresh.service

    NEXT zeigt die nächste Zeit, zu der der Timer läuft.

    LEFT zeigt die Zeitdauer, bis der Timer das nächste Mal läuft.

    LAST zeigt die Zeit, zu der der Timer das letzte Mal lief.

    PASSED zeigt, welche Zeit vergangen ist, seitdem der Timer letztmalig lief.

    UNIT zeigt den Namen des Timers.

    ACTIVATES zeigt den Namen des Dienstes, den der Timer beim Laufen aktiviert.

    Siehe auch --all und --state=.

    Hinzugefügt in Version 209.

is-active MUSTER…
    Prüft, ob eine der angegebenen Units aktiv ist (d.h. läuft). Liefert einen Exit-Code von 0, falls mindestens eine aktiv ist oder einen von Null verschiedenen Wert andernfalls. Außer wenn --quiet angegeben ist, wird dies auch den aktuellen Zustand der Unit auf der Standardausgabe ausgeben.

is-failed [MUSTER…]
    Prüft, ob eine der angegebenen Units im »fehlgeschlagenen« Zustand ist. Falls keine Unit angegeben ist, prüft, ob es irgendwelche fehlgeschlagene Units oder Ordnungszyklen gibt, die dem »degradierten« Zustand entsprechen, der von is-system-running zurückgeliefert werden. Liefert einen Exit-Code von 0, falls mindestens eine fehlgeschlagen ist oder einen von Null verschiedenen Wert andernfalls. Außer wenn --quiet angegeben ist, wird dies auch den aktuellen Zustand der Unit oder des Systems auf der Standardausgabe ausgeben.

    Hinzugefügt in Version 197.

status [MUSTER…|PID…]]
    Zeigt Laufzeitstatusinformationen über das gesamte System oder über eine oder mehrere Units, gefolgt von den den jüngsten Protokolldaten aus dem Journal. Falls keine positionsabhängigen Argumente angegeben sind und kein Unit-Filter mit --type=, --state= oder --failed übergeben wurden, wird der Status des gesamten Systems angezeigt. Falls mit --all kombiniert, folgt diesem der Status aller Units. Falls positionsabhängige Argumente angegeben wurden, wird jedes positionsabhängige Argument als entweder ein anzuzeigender Unit-Name oder als ein Glob-Muster, um Units anzuzeigen, deren Namen auf das Muster passen oder als PID, um Units, die diese PID enthalten, anzuzeigen, betrachtet. Wird --type=, --state= oder --failed verwandt, werden Units zusätzlich durch den Zustand TYPE und ACTIVE gefiltert.

    Diese Funktion ist zur Erstellung menschenlesbarer Ausgabe gedacht. Falls Sie nach Computer-auswertbarer Ausgabe suchen, verwenden Sie stattdessen show. Standardmäßig zeigt diese Funktion nur die letzten 10 Ausgabezeilen und verkürzte Zeilen, um in das Terminal-Fenster zu passen. Dies kann mit --lines und --full geändert werden, siehe oben. Zusätzlich verwenden journalctl --unit=NAME oder journalctl --user-unit=NAME einen ähnlichen Filter für Nachrichten und könnten praktischer sein.

    Beachten Sie, dass diese Aktion nur den Laufzeit-Status anzeigt, d.h. Informationen über den aktuellen Aufruf der Unit (falls sie läuft) oder den letzten Aufruf (falls sie nicht mehr läuft und noch nicht vom Speicher freigegeben wurde). Informationen über frühere Aufrufe, Aufrufe von vorhergehenden Systemstarts oder frühere Aufrufe, bei denen bereits der Speicher freigegeben wurde, könnten mittels journalctl --unit= abgerufen werden.

    Systemd lädt Units implizit nach Notwendigkeit, daher wird die reine Ausführung von status versuchen, eine Datei zu laden. Der Befehl ist daher nicht nützlich, um zu bestimmen, ob etwas bereits geladen war oder nicht. Die Units könnten sich auch schnell entladen, nachdem die Aktion abgeschlossen ist, falls es keinen Grund gibt, sie danach im Speicher zu halten.

    Beispiel 1. Beispielausgabe von systemctl status

        $ systemctl status bluetooth
        ● bluetooth.service - Bluetooth service
           Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: enabled)
           Active: active (running) since Wed 2017-01-04 13:54:04 EST; 1 weeks 0 days ago
             Docs: man:bluetoothd(8)
         Main PID: 930 (bluetoothd)
           Status: "Running"
            Tasks: 1
           Memory: 648.0K
              CPU: 435ms
           CGroup: /system.slice/bluetooth.service
                   └─930 /usr/lib/bluetooth/bluetoothd
        Jan 12 10:46:45 example.com bluetoothd[8900]: Not enough free handles to register service
        Jan 12 10:46:45 example.com bluetoothd[8900]: Current Time Service could not be registered
        Jan 12 10:46:45 example.com bluetoothd[8900]: gatt-time-server: Input/output error (5)

    Der Punkt (»●«) verwendet auf unterstützten Terminals Farbe, um den Unit-Zustand auf einen Blick zusammenzufassen. Zusammen mit seiner Farbe ändert sich die Form entsprechend seines Zustandes: »inaktiv« oder »Wartung« ist ein weißer Kreis (»○«), »aktiv« ist ein grüner Punkt (»●«), »Deaktivierend« ist ein weißer Punkt, »Fehlgeschlagen« oder »Fehler« ist ein rotes Kreuz (»×«) und »Neuladend« oder »Auffrischen« ist ein grüner Kreispfeil im Uhrzeigersinn (»↻«).

    Die Zeile »Loaded:« in der Ausgabe wird »loaded« anzeigen, falls die Unit in den Speicher geladen wurde. Andere mögliche Werte für »Loaded:« sind u.A.: »error«, falls es ein Problem beim Laden gab, »not-found«, falls für diese Unit keine Unit-Datei gefunden wurde, »bad-setting«, falls eine essenzielle Unit-Datei-Einstellung nicht ausgewertet werden konnte und »masked«, falls die Unit-Datei maskiert wurde. Zusammen mit dem Pfad zu der Unit-Datei wird diese Zeile auch den Freigabezustand anzeigen. Freigegebene Units werden in das Abhängigkeitsnetzwerk zwischen Units aufgenommen und daher beim Systemstart oder über andere Art der Aktivierung gestartet. Lesen Sie die vollständige Tabelle der möglichen Freigabezustände — einschließlich der Definition von »masked« in der Dokumentation für den Befehl »is-enabled«.

    Die Zeile »Active:« zeigt den aktiven Zustand. Der Wert ist normalerweise »active« oder »inactive«. Aktiv kann gestartet, gebunden, eingesteckt usw., abhängig vom Unit-Typ, sein. Die Unit könnte auch gerade dabei sein, ihre Zustände zu ändern und einen Zustand »activating« oder »deactivating« melden. Ein besonderer Zustand »failed« wird erreicht, wenn der Zustand auf irgendeine Art, z.B. durch einen Absturz, der Beendigung mit einem Fehler-Code oder einer Zeitüberschreitung, fehlgeschlagen ist. Falls ein Fehlerzustand erreicht wurde, wird der Grund protokolliert.

show [MUSTER…|AUFTRAG…]
    Zeigt die Eigenschaften einer oder mehrerer Units, von Aufträgen oder dem Verwalter selbst. Falls kein Argument angegeben ist, werden die Eigenschaften des Verwalters angezeigt. Falls ein Unit-Name angegeben ist, werden die Eigenschaften der Unit angezeigt und falls eine Auftragskennung angegeben ist, werden die Eigenschaften des Auftrags 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 dazu gedacht, wannimmer Computer-auswertbare Ausgabe benötigt wird. Verwenden Sie status, falls Sie formatierte, menschenlesbare Ausgabe wünschen.

    Viele durch systemctl show gezeigte Eigenschaften können direkt auf Konfigurationseigenschaften des System- und Diensteverwalters und seiner Unit-Dateien abgebildet werden. Beachten Sie, dass die durch den Befehl angezeigten Eigenschaften im Allgemeinen systemnahe, normierte Versionen der ursprünglichen Konfigurationseinstellungen sind und zusätzlich zur Konfiguration Laufzeitzustand offenlegen. Eigenschaften für Dienste-Units enthalten beispielsweise die Kennzeichnung des aktuellen Hauptprozesses des Dienstes als »MainPID« (was Laufzeitzustand ist) und die Zeiteinstellungen werden immer als Eigenschaften, die in »…Sec« enden, offengelegt, da Mikrosekunden die vom System- und Diensteverwalter intern verwandte normierte Zeiteinheit sind.

    Für Details zu vielen dieser Eigenschaften lesen Sie die Dokumentation der diesen Eigenschaften zugrundeliegenden D-Bus-Schnittstellen, siehe org.freedesktop.systemd1(5).

cat MUSTER…
    Zeigt zugrundeliegende Dateien von einer oder mehr Units. Gibt die »Fragmente« und »Ergänzungsdateien« (Quelldateien) von Units aus. Jeder Datei wird ein Kommentar vorangestellt, der den Dateinamen enthält. Beachten Sie, dass dieses die Inhalte der auf Platte zugrundeliegenden Dateien anzeigt, was sich von dem unterscheiden könnte, was der Systemverwalter von diesen Units denkt, falls die Units seitdem aktualisiert wurden und nicht der Befehl daemon-reload aufgerufen worden war.

    Hinzugefügt in Version 209.

help MUSTER…|PID…
    Zeigt die Handbuchseiten für eine oder mehrere Units, falls verfügbar. Falls eine PID übergeben wird, wird die Handbuchseite für die Unit, zu der der Prozess gehört, gezeigt.

    Hinzugefügt in Version 185.

list-dependencies [UNIT…]
    Zeigt Units, die von den angegebenen Units benötigt und gewünscht werden. Diese rekursive Liste folgt den Abhängigkeiten Requires=, Requisite=, Wants=, ConsistsOf=, BindsTo= und Upholds=. Falls keine Units angegeben sind, wird default.target impliziert.

    Die angezeigten Units werden zusätzlich durch --type= und --state= gefiltert, falls diese Optionen angegeben wurden. Beachten Sie, dass in diesem Fall keine Baumstruktur verwandt werden kann, daher wird --plain impliziert.

    Standardmäßig werden nur Ziel-Units rekursiv expandiert. Wenn --all übergeben wird, werden auch alle anderen Units rekursiv expandiert.

    Die Optionen --reverse, --after, --before können zur Änderung, welche Abhängigkeitsarten gezeigt werden, verwandt werden.

    Beachten Sie, dass dieser Befehl nur die derzeit durch den Diensteverwalter im Speicher geladenen Units aufführt. Insbesondere ist dieser Befehl nicht dazu geeignet, eine vollständige Liste aller inversen Abhängigkeiten einer bestimmten Unit zu erhalten, da es nicht die von Units erklärten Abhängigkeiten aufführt, die derzeit nicht geladen sind.

    Hinzugefügt in Version 198.

start MUSTER…
    Startet (aktiviert) eine oder mehrere auf der Befehlszeile angegebene Units.

    Beachten Sie, dass Unit-Glob-Muster auf die Namen der Units, die momentan im Arbeitsspeicher sind, expandieren. Units, die nicht aktiv und nicht in einem fehlgeschlagenen Zustand sind, sind normalerweise nicht im Speicher und es wird kein Muster auf sie passen. Bei instanziierten Units ist Systemd zusätzlich oft in Unkenntnis über den Instanzennamen, bis die Instanz gestartet wurde. Daher hat die Verwendung von Glob-Mustern mit start nur begrenzten Nutzen. Auch werden sekundäre Alias-Namen von Units nicht berücksichtigt.

    Die Option --all kann auch zum Einsatz auf inaktive Units, die von anderen geladenen Units referenziert werden, verwandt werden. Beachten Sie, dass dies nicht identisch zum Einsatz auf »alle« möglichen Units ist, da diese Liste nicht korrekt definiert ist, wie im vorherigen Absatz beschrieben. Dennoch mag systemctl start --all GLOB nützlich sein, falls alle Units, die auf das Muster passen, durch ein Ziel hereingezogen werden, welches bekanntermaßen geladen wird.

stop MUSTER…
    Stoppt (deaktiviert) eine oder mehrere auf der Befehlszeile angegebene Units.

    Dieser Befehl wird fehlschlagen, falls die Unit nicht existiert oder falls das Stoppen der Unit verboten ist (siehe RefuseManualStop= in systemd.unit(5)). Er wird nicht fehlschlagen, falls einer der für das Stoppen der Unit konfigurierten Befehle ((ExecStop= usw.) fehlschlägt, da der Verwalter dennoch die Unit zwangsweise beenden wird.

    Falls eine Unit, die gestoppt wird, noch von anderen Units ausgelöst werden kann, wird eine Warnung angezeigt, die die Namen der auslösenden Units enthält. Diese Warnung kann mit --no-warn unterdrückt werden.

reload MUSTER…
    Bittet alle auf der Befehlszeile aufgeführten Units, ihre Konfiguration neu zu laden. Beachten Sie, dass dies die Dienste-spezifische Konfiguration neu lädt, nicht die Unit-Konfiguration von Systemd. Falls Sie möchten, dass Systemd die Konfiguration einer Unit neu lädt, verwenden Sie den Befehl daemon-reload. Mit anderen Worten: Im Falle von Apache wird dies die httpd.conf neu in den Webserver laden, nicht die Systemd-Unit-Datei apache.service.

    Dieser Befehl sollte nicht mit dem Befehl daemon-reload verwechselt werden.

restart MUSTER…
    Stoppt und startet eine oder mehrere auf der Befehlszeile übergebene Units. Falls die Units noch nicht laufen, werden sie gestartet.

    Beachten Sie, dass das Neustarten einer Unit mit diesem Befehl nicht notwendigerweise alle Ressourcen der Unit herrausschreibt, bevor sie neu gestartet wird. Beispielsweise wird die Dienste-bezogene Dateideskriptorspeichereinrichtung (siehe FileDescriptorStoreMax= in systemd.service(5)) intakt bleiben, solange ein Auftrag in der Unit wartet und wird nur bereinigt, wenn die Unit komplett gestoppt wird und keine Aufträge mehr warten. Falls gewünscht ist, dass der Dateideskriptorspeicher auch rausgeschrieben wird, dann sollte während der Neustartaktion ein expliziter Befehl systemctl stop gefolgt von systemctl start eingegeben werden.

try-restart MUSTER…
    Stoppt und startet eine oder mehrere auf der Befehlszeile angegebene Units, falls die Units laufen. Dies ist wirkungslos, falls die Units nicht laufen.

reload-or-restart MUSTER…
    Lädt eine oder mehrere Units neu, falls sie das unterstützen. Falls nicht, werden sie stattdessen gestoppt und dann gestartet. Falls die Units noch nicht laufen, werden sie gestartet.

    Dies funktioniert leicht anders, wenn es im Zusammenspiel mit --marked verwandt wird, siehe unten.

try-reload-or-restart MUSTER…
    Lädt eine oder mehrere Units neu, falls sie das unterstützen. Falls nicht, werden sie stattdessen gestoppt und neugestartet. Dies ist wirkungslos, falls die Units nicht laufen.

    Hinzugefügt in Version 229.

isolate UNIT
    Startet die auf der Befehlszeile angegebene Unit und ihre Abhängigkeiten und stoppt alle anderen, außer sie haben IgnoreOnIsolate=yes (siehe systemd.unit(5)). Falls ein Unit-Name ohne Erweiterung angegeben wird, wird eine Erweiterung ».target« angenommen.

    Dieser Befehl ist gefährlich, da er sofort Prozesse stoppen wird, die in dem neuen Ziel nicht freigegeben sind, möglicherweise einschließlich der graphischen Umgebung oder des Terminals, das Sie gerade benutzen.

    Beachten Sie, dass diese Aktion nur auf Units erlaubt ist, bei denen AllowIsolate= aktiviert ist. Siehe systemd.unit(5) für Details.

kill MUSTER…
    Sendet ein UNIX-Prozesssignal an einen oder mehrere Prozesse der Unit. Verwenden Sie --kill-whom=, um den Prozess auszuwählen, an den das Signal gesandt werden soll. Verwenden Sie --signal=, um das zu sendende Signal auszuwählen. Kombinieren Sie dies mit --kill-value=, um ein POSIX-Echtzeitsignal mit einem zugehörigen Wert in die Warteschlange zu stellen.

clean MUSTER…
    Entfernt die Konfiguration, den Zustand, den Zwischenspeicher, die Protokolle, die Laufzeitdaten oder die Dateideskriptorspeicherdaten der angegebenen Units. Verwenden Sie --what=, um auszuwählen, welche Ressourcenarten Sie entfernen möchten.Für Dienste-Units kann dies zur Entfernung von mit ConfigurationDirectory=, StateDirectory=, CacheDirectory=, LogsDirectory= und RuntimeDirectory= konfigurierten Verzeichnissen verwandt werden, siehe systemd.exec(5) für Details. Es kann auch zum Bereinigen des mittels FileDescriptorStoreMax= aktivierten Dateideskriptorspeichers verwandt werden, siehe systemd.service(5) zu Details. Für Timer-Units kann dies zur Bereinigung der dauerhaften Zeitstempeldaten verwandt werden, falls Persistent= eingesetzt und --what=state ausgewählt ist, siehe systemd.timer(5). Dieser Befehl wird nur auf Unit angewandt, die eine dieser Einstellungen verwenden. Falls --what= nicht angegeben ist, werden der Zwischenspeicher- und Laufzeitdaten sowie der Dateideskriptorspeicher entfernt (da diese drei Datenarten im Allgemeinen redundant und beim nächsten Aufruf der Unit reproduzierbar sind). Mehrere Werte können durch Kommata getrennt angegeben werden. Beachten Sie, dass die angegebenen Units gestoppt sein müssen, um diese Aktion aufzurufen.

    Tabelle 2. Mögliche Werte für --what=
    Wert | Unit-Einstellung
    "runtime" | RuntimeDirectory=
    "state" | StateDirectory=
    "cache" | CacheDirectory=
    "logs" | LogsDirectory=
    "configuration" | ConfigurationDirectory=
    "fdstore" | FileDescriptorStorePreserve=
    "all" | Alles obige
    "help" | Zeigt die unterstützten Werte und beendet das Programm.

    Hinzugefügt in Version 243.

freeze MUSTER…
    Friert eine oder mehrere auf der Befehlszeile angegebene Units mittels des Cgroup-Freezers ein.

    Einfrieren einer Unit führt dazu, dass alle Prozesse in der der Unit entsprechenden Cgroup suspendiert werden. Suspendiert sein bedeutet, dass die Prozesse der Unit nicht zur Ausführung auf einer CPU eingeplant werden, bis die Unit aufgetaut wird. Beachten Sie, dass dieser Befehl nur auf Systemen unterstützt wird, die die vereinigte Cgroup-Hierarchie verwenden. Die Unit wird automatisch aufgetaut, genau bevor ein Auftrag gegen die Unit ausgeführt wird, z.B. bevor die Unit gestoppt wird.

    Hinzugefügt in Version 246.

thaw MUSTER…
    Taut eine oder mehrere auf der Befehlszeile angegebenen Units auf.

    Dies ist die inverse Aktion zum Befehl freeze und nimmt die Ausführung von Prozessen in der Cgroup der Unit wieder auf.

    Hinzugefügt in Version 246.

set-property UNIT EIGENSCHAFT=WERT…
    Setzt die angegebenen Unit-Eigenschaften zur Laufzeit, wo dies unterstützt wird. Dies erlaubt die Änderung von Konfigurationsparametereigenschaften wie Ressourcensteuereinstellungen zur Laufzeit. Es können nicht alle Eigenschaften zur Laufzeit geändert werden, aber viele Ressourcensteuereinstellungen (primär die in systemd.resource-control(5)). Die Änderungen werden sofort angewandt und auf Platte für zukünftige Systemstarts gespeichert, außer --runtime wird übergeben, wodurch die Einstellungen nur bis zum nächsten Systemneustart angewandt werden. Die Syntax der Eigenschaftszuweisung folgt eng der Syntax der Zuweisungen in Unit-Dateien.

    Beispiel: systemctl set-property foobar.service CPUWeight=200

    Falls die angegebene Unit-Datei inaktiv zu sein scheint, werden die Änderungen nur wie früher beschrieben auf Platte gespeichert, daher werden sie erst beim Starten der Unit zur Geltung kommen.

    Beachten Sie, dass dieser Befehl das Ändern mehrerer Eigenschaften auf einmal erlaubt, was gegenüber der individuellen Einstellung bevorzugt werden sollte.

    Beispiel: systemctl set-property foobar.service CPUWeight=200 MemoryMax=2G IPAccounting=yes

    Wie bei Unit-Konfigurationseinstellungen führt die Zuweisung der leeren Einstellung normalerweise zum Zurücksetzen einer Eigenschaft auf ihre Vorgaben.

    Beispiel: systemctl set-property avahi-daemon.service IPAddressDeny=

    Hinzugefügt in Version 206.

bind UNIT PFAD [PFAD]
    Hängt eine Datei oder ein Verzeichnis von dem Rechner in den angegebenen Einhänge-Namensraum der Unit mit bind ein. Das erste Pfadargument ist die Quelldatei oder das Quellverzeichnis auf dem Rechner, das zweite Pfadargument ist die Zieldatei oder das Zielverzeichnis in dem Einhänge-Namensraum der Unit. Falls letzteres fehlt, ist der Zielpfad in dem Einhänge-Namensraum der Unit identisch zum Quellpfad im Rechner. Wird dies mit dem Schalter --read-only kombiniert, dann wird eine nur-lesbare Bind-Einhängung erstellt. Wird dies mit dem Schalter --mkdir kombiniert, dann wird der Zielpfad zuerst erstellt, bevor die Einhängung angewandt wird.

    Beachten Sie, dass diese Option zur Zeit nur für Units unterstützt wird, die innerhalb eines Einhängenamensraums ausgeführt werden (z.B.: mit RootImage=, PrivateMounts= usw.). Dieser Befehl unterstützt die Bind-Einhängung von Verzeichnissen, regulären Dateien, Geräteknoten, AF_UNIX-Socket-Knoten sowie FIFOs. Die Bind-Einhängung ist flüchtig und wird sofort zurückgenommen, sobald sich die Prozesse der aktuellen Unit beenden. Beachten Sie, dass der hier erwähnte Namensraum, zu dem die Bind-Einhängung hinzugefügt wird, derjenige ist, in dem der Hauptdiensteprozess ausgeführt wird. Andere Prozesse (die von ExecReload=, ExecStartPre= usw. ausgeführt werden) laufen in einem dedizierten Namensraum.

    Falls vom Kernel unterstützt, wird jede vorherige Einhängung auf dem ausgewählten Ziel durch die neue Einhängung ersetzt. Falls nicht unterstützt, wird über jede vorherige Einhängung drüber eingehängt, bleibt aber festgelegt und nicht zugreifbar.

    Hinzugefügt in Version 248.

mount-image UNIT ABBILD [PFAD [PARTITIONSNAME:EINHÄNGEOPTIONEN]]
    Hängt eine Abbild von dem Rechner in den angegebene Einhänge-Namensraum der Unit ein. Das erste Pfadargument ist das Quellabbild auf dem Rechner, das zweite Pfadargument ist das Zielverzeichnis in dem Einhänge-Namensraum der Unit (d.h. innerhalb von RootImage=/RootDirectory=). Die folgenden Argumente, falls vorhanden, werden als Doppelpunkt-getrenntes Tupel von Partitionsnamen und Kommata-getrennten Listen von Einhängeoptionen für diese Partition interpretiert. Das Format ist identisch zu der Diensteeinstellung MountImages=. Wird dies mit dem Schalter --read-only kombiniert, dann wird eine nur-lesbare Einhängung erstellt. Wird dies mit dem Schalter --mkdir kombiniert, dann wird der Zielpfad zuerst erstellt, bevor die Einhängung angewandt wird.

    Beachten Sie, dass diese Option zur Zeit nur für Units unterstützt wird, die innerhalb eines Einhängenamensraums ausgeführt werden (d.h. mit RootImage=, PrivateMounts= usw.). Beachten Sie, dass der hier erwähnte Namensraum, zu dem die Abbild-Einhängung hinzugefügt wird, derjenige ist, in dem der Hauptdiensteprozess ausgeführt wird. Beachten Sie, dass der hier erwähnte Namensraum, zu dem die Bind-Einhängung hinzugefügt wird, der ist, in dem der Hauptdiensteprozess läuft. Andere Prozesse (die von ExecReload=, ExecStartPre=, usw. ausgeführt werden), laufen in einem dedizierten Namensraum.

    Falls vom Kernel unterstützt, wird jede vorherige Einhängung auf dem ausgewählten Ziel durch die neue Einhängung ersetzt. Falls nicht unterstützt, wird über jede vorherige Einhängung drüber eingehängt, bleibt aber festgelegt und nicht zugreifbar.

    Beispiel:

        systemctl mount-image foo.service /tmp/img.raw /var/lib/image root:ro,nosuid

        systemctl mount-image --mkdir bar.service /tmp/img.raw /var/lib/baz/img

    Hinzugefügt in Version 248.

service-log-level DIENST [STUFE]
    Gibt die aktuelle Protokollierstufe, wie sie von DIENST gemeldet wird, aus, falls das Argument STUFE nicht angegeben ist.

    Falls das optionale Argument STUFE bereitgestellt wird, dann wird die aktuelle Protokollierstufe des Dienstes auf STUFE geändert. Die Protokollierstufe sollte eine typische Syslog-Protokollierstufe sein, d.h. ein Wert im Bereich 0…7 oder eine der Zeichenketten emerg, alert, crit, err, warning, notice, info, debug; siehe syslog(3) für Details.

    Der Dienst muss über die geeignete Eigenschaft BusName=Ziel verfügen und auch die generische Schnittstelle org.freedesktop.LogControl1(5) implementieren. (Systemctl wird das generische D-Bus-Protokoll zum Zugriff auf die Schnittstelle org.freedesktop.LogControl1.LogLevel für den D-Bus-Namen Ziel verwenden.)

    Hinzugefügt in Version 247.

service-log-target DIENST [ZIEL]
    Gibt das aktuelle Protokollierziel, wie es von DIENST gemeldet wird, aus, falls das Argument ZIEL nicht angegeben ist.

    Falls das optionale Argument ZIEL bereitgestellt wird, dann wird das aktuelle Protokollierziel des Dienstes auf ZIEL geändert. Das Protokollierziel sollte eine der Zeichenketten console (für das Protokollieren in den Standardfehlerausgabestroms des Dienstes), kmsg (für das Protokollieren in den Kernelprotokollpufer), journal (für das Protokollieren nach systemd-journald.service(8) mittels des nativen Journal-Protokolls), syslog (für das Protokollieren in das klassische Syslog-Socket /dev/log), null (für keine Protokollierung) oder auto (für eine automatisch bestimmte Auswahl, typischerweise äquivalent zu console, falls der Dienst interaktiv aufgerufen wurde und andernfalls journal oder syslog) sein.

    Für die meisten Dienste ergeben nur eine kleine Teilmenge der Protokollierziele Sinn. Insbesondere sollten »normale« Dienste nur console, journal und null implementieren. Alles andere ist nur für systemnahe Dienste angemessen, die in der sehr frühen Systemstartphase aktiv sind, bevor korrekte Protokollierung etabliert ist.

    Der Dienst muss über die geeignete Eigenschaft BusName=Ziel verfügen und auch die generische Schnittstelle org.freedesktop.LogControl1(5) implementieren. (Systemctl wird das generische D-Bus-Protokoll zum Zugriff auf die Schnittstelle org.freedesktop.LogControl1.LogLevel für den D-Bus-Namen Ziel verwenden.)

    Hinzugefügt in Version 247.

reset-failed [MUSTER…]
    Setzt den Zustand »failed« der angegebenen Unit zurück oder, falls kein Unit-Name übergeben wird, setzt den Zustand aller Units zurück. Wenn eine Unit auf irgendeine Art fehlschlägt (d.h. sich der Prozess mit einem von Null verschiedenen Fehler-Code beendet, sich abnormal beendet oder in eine Zeitüberschreitung läuft), tritt sie automatisch in den Zustand »failed« und ihr Exit-Code und ihr Status wird zur Prüfung durch den Administrator aufgezeichnet, bis der Dienst gestoppt/neugestartet oder mit diesem Befehl zurückgesetzt ist.

    Zusätzlich zum Zurücksetzen des Status »failed« einer Unit setzt dies auch verschiedene andere Unit-bezogene Eigenschaften zurück: der Startratenbegrenzungszähler aller Unit-Typen wird auf Null zurückgesetzt, wie auch der Neustartzähler von Dienste-Units. Falls daher die Startbegrenzung (wie mit StartLimitIntervalSec=/StartLimitBurst= konfiguriert) einer Unit erreicht wird und die Unit es ablehnt, erneut gestartet zu werden, verwenden Sie diesen Befehl, um sie wieder startbar zu bekommen.

whoami [PID…]
    Liefert die Units zurück, zu denen die über die PIDs referenzierten Prozesse gehören (eine pro Zeile). Falls keine PID angegeben ist, wird die Unit zurückgegeben, in der der Befehl systemctl aufgerufen wird.

    Hinzugefügt in Version 254.

  Unit-Dateibefehle

list-unit-files [MUSTER…]
    Listet auf dem System installierte Units zusammen mit ihrem Freigabezustand (wie von is-enabled) gemeldet) auf. Falls ein oder mehrere Muster angegeben sind, werden nur Units, deren Name auf sie passen, gezeigt (Muster, die auf Unit-Dateisystempfade passen, werden nicht unterstützt).

    Anders als list-units wird dieser Befehl zusätzlich zu den explizit instanziierten Units Vorlagenunits auflisten.

    Hinzugefügt in Version 233.

enable UNIT…, enable PFAD…
    Gibt eine oder mehrere Units oder Unit-Instanzen frei. Dies wird eine Gruppe von Symlinks erzeugen, wie dies in dem Abschnitt »[Install]« der angezeigten Unit-Dateien kodiert ist. Nachdem die Symlinks erstellt wurden, wird die Systemverwalterkonfiguration neu geladen (auf einer zu daemon-reload äquivalenten Art), um sicherzustellen, dass die Änderungen sofort berücksichtigt werden. Beachten Sie, dass dies nicht den Effekt hat, dass die freigegebenen Units auch gestartet werden. Falls dies gewünscht ist, kombinieren Sie den Befehl mit dem Schalter --now oder rufen Sie später start mit geeigneten Argumenten auf. Beachten Sie, dass bei der Freigabe von Unit-Instanzen (d.h. Freigabe von Units der Form foo@bar.service) Symlinks mit dem gleichen Namen wie die erstellten Instanzen im Unit-Konfigurationsverzeichnis erstellt werden, allerdings zeigen sie auf die einzelne Vorlagen-Unit-Datei, aus der sie instanziiiert wurden.

    Dieser Befehl erwartet entweder gültige Unit-Namen (in diesem Fall werden verschiedene Unit-Datei-Verzeichnisse automatisch nach Unit-Dateien mit geeigneten Namen durchsucht) oder absolute Pfade zu Unit-Dateien (in diesem Fall werden die Dateien direkt eingelesen). Falls eine angegebene Unit-Datei sich außerhalb der gewöhnlichen Unit-Dateiverzeichnisse befindet, wird ein zusätzlicher Symlink erstellt, der sie in den Unit-Konfigurationspfad verlinkt, und daher sicherstellt, dass sie durch Befehle wie start gefunden wird. Das Dateisystem, in dem sich die verlinkten Unit-Dateien befinden, muss verfügbar sein, wenn Systemd gestartet wird (z.B. ist alles unterhalb von /home/ oder /var/ nicht erlaubt, außer diese Verzeichnisse befinden sich auf dem Wurzeldateisystem).

    Dieser Befehl wird die ausgeführten Dateisystemaktionen ausgeben. Diese Ausgabe kann durch Übergabe von --quiet unterdrückt werden.

    Beachten Sie, dass diese Aktion nur die in dem Abschnitt »[Install]« der Unit-Dateien vorgeschlagenen Symlinks erstellt. Obwohl dieser Befehl die empfohlene Art ist, das Unit-Konfigurationsverzeichnis zu bearbeiten, steht es dem Administrator frei, manuell zusätzliche Änderungen vorzunehmen, indem er in diesem Verzeichnis Symlinks anlegt oder entfernt. Dies ist besonders nützlich, um Konfigurationen zu erstellen, die von den vorgeschlagenen Standardinstallationen abweichen. In diesem Falle muss der Administrator sicherstellen, daemon-reload wo notwendig aufzurufen, um sicherzustellen, dass die Änderungen berücksichtigt werden.

    Wird diese Aktion auf Units ohne Installationsinformationen angewandt, wird daüber eine Warnung angezeigt. Diese Warnung kann mit --no-warn unterdrückt werden.

    Freigeben von Units sollte nicht mit dem Starten (Aktivieren) verwechselt werden, wie dies durch den Befehl start erfolgt. Freigeben und starten von Units ist orthogonal: Units können freigegeben sein, ohne gestartet zu sein und gestartet, ohne freigegeben zu sein. Die Freigabe hängt die Unit an verschiedenen vorgeschlagenen Stellen ein (beispielsweise so, dass die Unit automatisch beim Systemstart gestartet wird oder wenn ein bestimmte Art von Hardware eingesteckt wird). Starten führt den Daemon-Prozess tatsächlich aus (im Falle von Dienste-Units) oder bindet das Socket (im Falle von Socket-Units) ein und so weiter.

    Abhängig davon ob --system, --user, --runtime oder --global angegeben wurde, gibt dies die Unit für das System, nur den aufrufenden Benutzer, nur für diesen Systemstart oder für alle zukünftigen Anmeldungen aller Benutzer frei. Beachten Sie, dass in letzterem Fall keine Systemd-Daemonkonfiguration neu geladen wird.

    Die Verwendung von enable auf maskierten Units wird nicht unterstützt und führt zu einem Fehler.

disable UNIT…
    Schaltet eine oder mehrere Units aus. Dies entfernt alle Symlinks auf die Unit-Dateien, die den angegebenen Units aus dem Unit-Konfigurationsverzeichnis hinterlegt sind und nimmt daher alle durch enable oder link vorgenommenen Änderungen zurück. Beachten Sie, dass dies alle Symlinks auf passende Unit-Dateien entfernt, einschließlich manuell erstellter Symlinks, und nicht nur die tatsächlich von enable oder link erstellten. Beachten Sie, dass zwar disable den Effekt von enable rückgängig macht, die zwei Befehle aber ansonsten nicht symmetrisch sind, da disable mehr Symlinks entfernen könnte, als ein vorheriger Aufruf von enable für die gleiche Unit erstellte.

    Dieser Befehl erwartet nur gültige Unit-Namen, er akzeptiert keine Pfade zu Unit-Dateien.

    Zusätzlich zu den als Argument angegebenen Unit-Dateien werden alle Units ausgeschaltet, die in der in Abschnitt »[Install]« aufgeführten Einstellung Also= in jeder der Unit-Dateien, auf die agiert wird, enthalten sind.

    Dieser Befehl lädt implizit die Systemverwalterkonfiguration nach Abschluss der Aktion neu. Beachten Sie, dass dieser Befehl die ausgeschalteten Units nicht implizit stoppt. Falls dies gewünscht ist, kombinieren Sie diesen Befehl entweder mit dem Schalter --now oder rufen Sie den Befehl stop mit geeigneten Argumenten später auf.

    Dieser Befehl wird Informationen über die ausgeführten Dateisystemaktionen (Entfernung der Symlinks) ausgeben. Durch Übergabe von --quiet kann diese Ausgabe unterdrückt werden.

    Falls eine Unit deaktiviert wird, aber ihre auslösenden Units immer noch aktiv sind, wird eine Warnung angezeigt, die die Namen der auslösenden Units enthält. Diese Warnung kann mit --no-warn unterdrückt werden.

    Wird dieser Befehl zusammen mit --user verwandt, könnten die Units, auf denen agiert wird, in einem globalen Bereich dennoch aktiviert und daher automatisch gestartet werden, selbst wenn sie im Benutzerbereich automatisch deaktiviert wurden. In diesem Fall wird eine Warnung dazu ausgegeben, die mittels --no-warn unterdrückt werden kann.

    Dieser Befehl berücksichtigt --system, --user, --runtime, --global und --no-warn auf eine ähnliche Art wie enable.

    Hinzugefügt in Version 238.

reenable UNIT…
    Gibt eine oder mehrere Units erneut frei, wie dies auf der Befehlszeile angegeben ist. Dies ist eine Kombination von disable und enable und ist nützlich, um die Symlinks, mit der eine Unit-Datei freigegeben wird, auf die in seinem Abschnitt »[Install]« konfigurierten Vorgaben zurückzusetzen. Dieser Befehl erwartet nur einen Unit-Namen und akzeptiert keine Pfade zu Unit-Dateien.

    Dieser Befehl lädt implizit die Systemverwalterkonfiguration nach Abschluss der Aktion neu. Beachten Sie, dass dieser Befehl die ausgeschalteten Units nicht implizit neustartet. Falls dies gewünscht ist, kombinieren Sie diesen Befehl entweder mit dem Schalter --now oder rufen Sie den Befehl try-restart mit geeigneten Argumenten später auf.

    Hinzugefügt in Version 238.

preset UNIT…
    Setzt den Status Freigegeben/Ausgeschaltet von einer oder mehrerer Unit-Dateien, wie auf der Befehlszeile angegeben, auf die in den Voreinstellungsrichtliniendateien konfigurierten Standardwerte zurück. Dies hat den gleichen Effekt wie disable oder enable, abhängig davon, wie die Unit in den Voreinstellungsdateien aufgeführt ist.

    Verwenden Sie --preset-mode=, um zu steuern, ob Units freigegeben und ausgeschaltet oder nur freigegeben oder nur ausgeschaltet sein sollen.

    Falls die Unit keine Installationsinformationen überträgt, wird sie durch diesen Befehl ohne Rückmeldung ignoriert. UNIT muss ein echter Unit-Name sein, jeder Aliasname wird ohne Rückmeldung ignoriert.

    Weitere Informationen über das Format der Voreinstellungsrichtlinien finden Sie unter systemd.preset(5).

    Hinzugefügt in Version 238.

preset-all
    Setzt alle installierten Unit-Dateien auf die in der Voreinstellungsrichtliniendatei konfigurierten Vorgaben zurück (siehe oben).

    Verwenden Sie --preset-mode=, um zu steuern, ob Units freigegeben und ausgeschaltet oder nur freigegeben oder nur ausgeschaltet sein sollen.

    Hinzugefügt in Version 215.

is-enabled UNIT…
    Prüft, ob eine der angegebenen Unit-Dateien eingeschaltet ist (wie mit enable). Liefert einen Exit-Code 0 zurück, falls mindestens eine freigegeben ist, andernfalls eine von Null verschiedene Zahl. Gibt den derzeitigen Freigabestatus (siehe Tabelle) aus. Um diese Ausgabe zu unterdrücken, verwenden Sie --quiet. Um Installationsziele anzuzeigen, verwenden Sie --full.

    Tabelle 3. Ausgabe von is-enabled
    Name | Beschreibung | Exit-Code
    "enabled" | Über .wants/, .requires/ oder Alias=-Symlinks freigegeben (dauerhaft in /etc/systemd/system/ oder flüchtig in /run/systemd/system/). | 0
    "enabled-runtime" |  |
    "linked" | Über einen oder mehrere Symlinks auf die Unit-Datei verfügbar gemacht (dauerhaft in /etc/systemd/system/ oder flüchtig in /run/systemd/system/), obwohl die Unit-Datei selbst außerhalb des Unit-Dateisuchpfades liegen kann. | > 0
    "linked-runtime" |  |
    "alias" | Der Name ist ein Alias (Symlink auf eine andere Unit-Datei). | 0
    "masked" | Komplett ausgeschaltet, so dass jede Startaktion darauf fehlschlägt (dauerhaft in /etc/systemd/system/ oder flüchtig in /run/systemd/systemd/). | > 0
    "masked-runtime" |  |
    "static" | Die Unit-Datei ist nicht freigegeben und hat keine Vorkehrungen für die Freigabe in dem Unit-Dateiabschnitt »[Install]«. | 0
    "indirect" | Die Unit-Datei selbst ist nicht freigegeben, hat aber etwas in der Einstellung Also= im Abschnitt »[Install]« der Unit-Datei, wo andere Unit-Dateien aufgeführt sind, die freigegeben werden können, oder sie hat einen Alias unter einem anderen Namen durch einen Symlink, der nicht auch in Also= angegeben ist. Für Vorlagen-Unit-Dateien ist eine Instanz, die sich von der in DefaultInstance= angegebenen unterscheidet, freigegeben. | 0
    "disabled" | Die Unit-Datei ist nicht freigegeben, enthält aber einen Abschnitt »[Install]« mit Installationsanweisungen. | > 0
    "generated" | Die Unit wurde dynamisch mit einem Generatorwerkzeug erstellt. Siehe systemd.generator(7). Erstellte Unit-Dateien können nicht freigegeben werden, sie werden implizit durch ihren Generator freigegeben. | 0
    "transient" | Die Unit-Datei wurde dynamisch mit der Laufzeit-API erstellt. Flüchtige Units können nicht freigegeben werden. | 0
    "bad" | Die Unit-Datei ist ungültig oder ein anderer Fehler ist aufgetreten. Beachten Sie, dass is-enabled diesen Zustand nicht tatsächlich zurückliefern wird, sondern stattdessen eine Fehlermeldung ausgeben wird. Die durch list-unit-files dargestellte Unit-Datei-Auflistung könnte sie allerdings enthalten. | > 0
    "not-found" | Die Unit-Datei existiert nicht. | 4

    Hinzugefügt in Version 238.

mask UNIT…
    Blendet eine oder mehrere Units, wie auf der Befehlszeile angegeben, aus. Dies wird die Unit-Dateien nach /dev/null linken, wodurch sie nicht gestartet werden können. Dies ist eine stärkere Version von disable, da sie alle Arten von Aktivierung der Unit verbietet, einschließlich der Freigabe und manueller Aktivierung. Verwenden Sie diese Option mit Vorsicht. Die Option --runtime wird berücksichtigt, um nur bis zum nächsten Systemneustart auszublenden. Die Option --now kann verwandt werden, um sicherzustellen, dass die Units auch gestoppt werden. Dieser Befehl erwartet nur gültige Unit-Namen, er akzeptiert keine Unit-Dateipfade.

    Beachten Sie, dass dies einen Symlink unter dem Namen der Unit in /etc/systemd/system/ (falls --runtime nicht angegeben ist) oder /run/systemd/system/ (falls --runtime angegeben ist) erstellt. Falls eine passende Unit-Datei unter diesen Verzeichnissen bereits existiert, wird diese Aktion daher fehlschlagen. Das bedeutet, dass diese Aktion primär zum Maskieren von Units nützlich ist, die vom Lieferanten ausgeliefert werden (da diese in /usr/lib/systemd/system/ und nicht in den vorher erwähnten Verzeichnissen ausgeliefert werden), funktioniert aber typischerweise nicht für lokal erstellte Units (da diese typischerweise in den zwei vorher erwähnten Verzeichnissen abgelegt werden). Ähnliche Beschränkungen gelten für den Modus --user. In diesem Fall befinden sich die Verzeichnisse allerdings unterhalb des Home-Verzeichnis des Benutzers.

    Falls eine Unit maskiert wird, aber ihre auslösenden Units noch aktiv sind, wird eine Warnung angezeigt, die die Namen der auslösenden Units enthält. Diese Warnung kann mit --no-warn unterdrückt werden.

    Hinzugefügt in Version 238.

unmask UNIT…
    Blendet eine oder mehrere Unit-Dateien, wie auf der Befehlszeile angegeben, ein. Dies macht die Wirkung von mask rückgängig. Dieser Befehl erwartet nur gültige Unit-Namen, er akzeptiert keine Unit-Dateipfade.

    Hinzugefügt in Version 238.

link PFAD…
    Linkt eine Unit-Datei, die nicht im Unit-Dateisuchpfad ist, in den Dateisuchpfad. Dieser Befehl erwartet einen absoluten Pfad zu einer Unit-Datei. Die Wirkung kann mit disable zurückgenommen werden. Die Wirkung des Befehls besteht darin, dass die Unit-Datei für Befehle wie start verfügbar gemacht wird, obwohl sie nicht direkt im Unit-Dateisuchpfad installiert ist. Das Dateisystem, in dem sich die verlinkte Unit-Datei befindet, muss beim Start von Systemd zugreifbar sein (d.h. alles unterhalb von /home/ oder /var/ ist nicht erlaubt, außer diese Verzeichnisse befinden sich im Wurzeldateisystem).

    Hinzugefügt in Version 233.

revert UNIT…
    Bringt eine oder mehrere Unit-Dateien auf die Version des Lieferanten zurück. Dieser Befehl entfernt Ergänzungskonfigurationsdateien, die die angegebene Unit verändern, sowie alle benutzerkonfigurierten Unit-Dateien, die eine passende, vom Lieferanten bereitgestellte Unit-Datei außer Kraft setzen. Konkret wird für eine Unit »foo.service« das passende Verzeichnis »foo.service.d/« mit allen darin enthaltenen Dateien entfernt, sowohl unterhalb der dauerhaften als auch der Laufzeitkonfigurationsverzeichnisse (d.h. unterhalb von /etc/systemd/system und /run/systemd/system). Falls es von der Unit-Datei eine durch den Lieferanten bereitgestellte Version gibt (d.h. eine Unit-Datei unterhalb von /usr/), werden alle passenden dauerhaften und Laufzeit-Unit-Dateien, die diese außer Kraft setzen, auch entfernt. Beachten Sie, dass eine Unit-Datei, für die es keine vom Lieferanten bereitgestellte Version gibt (d.h. sie wurde nur unterhalb von /etc/systemd/system oder /run/systemd/system definiert, aber nicht in einer Unit-Datei unterhalb von /usr/), nicht entfernt wird. Falls eine Unit ausgeblendet ist, wird sie eingeblendet.

    Dieser Befehl kann effektiv dazu verwandt werden, alle mit systemctl edit, systemctl set-property und systemctl mask vorgenommenen Änderungen zurückzusetzen und alle ursprünglichen Unit-Dateien mit ihren Einstellungen wieder zur Wirkung zu bringen.

    Hinzugefügt in Version 230.

add-wants ZIEL UNIT…, add-requires ZIELUNIT…
    Fügt zu dem ZIEL für eine oder mehrere Units Abhängigkeiten »Wants=« bzw. »Requires=« hinzu.

    Dieser Befehl berücksichtigt --system, --user, --runtime und --global auf eine ähnliche Art wie enable.

    Hinzugefügt in Version 217.

edit UNIT…
    Bearbeitet oder ersetzt ein Ergänzungsschnippsel oder die Haupt-Unit-Datei, um die Definition der angegebenen Unit zu erweitern oder außer Kraft zu setzen.

    Abhängig davon, ob --system (die Vorgabe), --user oder --global angegeben ist, agiert dieser Befehl auf Unit-Dateien des Systems, des aufrufenden Benutzers oder solchen, die von allen gemeinsam benutzt werden.

    Der Editor wird (siehe den Abschnitt »Umgebung« unten) mit temporären Dateien aufgerufen, die an den wirklichen Ort geschrieben werden, falls der Editor erfolgreich beendet wird. Nachdem die Bearbeitung beendet wurde, wird die Konfiguration neu geladen, äquivalent zu systemctl daemon-reload --system oder systemctl daemon-reload --user. Für edit --global wird das Neuladen nicht druchgeführt und die Bearbeitungen werden erst bei nachfolgenden Anmeldungen wirksam (oder nachdem ein Neuladen auf eine andere Art angefordert wurde).

    Falls --full angegeben ist, wird ein Ersatz für die Haupt-Unit-Datei erstellt oder bearbeitet. Andernfalls wird eine Ergänzungsdatei erstellt oder bearbeitet.

    Falls --drop-in= angegeben ist, wird der übergebene Ergänzungsdateiname statt des standardmäßigen override.conf verwandt.

    Die Unit muss existieren, d.h. ihre Haupt-Unit-Datei muss vorhanden sein. Falls --force angegeben wurde, wird diese Anforderung ignoriert und es kann eine neue Unit (mit --full) oder eine Ergänzung für eine nicht existierende Unit erstellt werden.

    Falls --runtime angegeben ist, wird die Änderung temporär in /run/ vorgenommen und geht beim nächsten Neustart verloren.

    Falls --stdin angegeben ist, werden neue Inhalte aus der Standardeingabe gelesen. In diesem Modus werden die alten Inhalte der Datei verworfen.

    Falls die temporäre Datei beim Beenden leer ist, wird die Änderung der zugehörigen Unit abgebrochen.

    Beachten Sie, dass dieser Befehl nicht zur Bearbeitung ferner Units verwandt werden kann und dass Sie keine Units, die in /etc/ liegen, temporär bearbeiten können, da diese vor /run/ Vorrang haben.

    Hinzugefügt in Version 218.

get-default
    Liefert das Standardziel, in welches der Systemstart erfolgt, zurück. Dies liefert den Ziel-Unit-Namen, auf das der Alias (Symlink) von default.target zeigt.

    Hinzugefügt in Version 205.

set-default ZIEL
    Setzt das Vorgabeziel, in das der Systemstart erfolgen soll. Dies setzt (als Symlink) den default.target-Alias auf die angegebene Ziel-Unit.

    Hinzugefügt in Version 205.

  Maschinenbefehle

list-machines [MUSTER…]
    Listet den Rechner und alle laufenden Container mit ihren Zuständen auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur auf die Muster passende Container angezeigt.

    Hinzugefügt in Version 212.

  Auftragsbefehle

list-jobs [MUSTER…]
    Listet laufende Aufträge auf. Falls eines oder mehrere MUSTER angegeben sind, werden nur Aufträge von Units, die auf die Muster passen, angezeigt.

    Wird dies mit --after oder --before kombiniert, wird die Liste mit Informationen darüber angereichert, auf welchen anderen Auftrag jeder Auftrag wartet und welche anderen Aufträge auf ihn warten, siehe oben.

    Hinzugefügt in Version 233.

cancel [AUFTRAG…]
    Bricht einen oder mehrere auf der Befehlszeile durch ihre numerische Auftragskennung angegebene Aufträge ab. Falls keine Auftragskennung angegeben ist, werden alle wartenden Aufträge abgebrochen.

    Hinzugefügt in Version 233.

  Umgebungsbefehle

systemd unterstützt einen Umgebungsblock, der an vom Systemverwalter erzeugte Prozesse übergeben wird. Die Namen der Variablen können ASCII-Buchstaben, Ziffern und das Unterstrichzeichen enthalten. Variablennamen dürfen nicht leer sein oder mit einer Ziffer starten. In den Variablenwerten sind die meisten Zeichen erlaubt, aber die gesamte Sequenz muss gültiges UTF-8 sein. (Beachten Sie, dass Steuerzeichen wie der Zeilenumbruch (NL), der Tabulator (TAB) oder das Maskierzeichen (ESC) gültiges ASCII und damit gültiges UTF-8 sind). Die Gesamtlänge des Umgebungsblocks ist auf den Wert _SC_ARG_MAX, der in sysconf(3) definiert ist, begrenzt.

show-environment
    Zeigt den Umgebungsblock des Systemd-Verwalters an. Dies ist der Umgebungsblock, der an alle vom Verwalter erzeugten Prozesse übergeben wird. Der Umgebungsblock wird in einer direkten Form, geeignet für die Einbindung in die meisten Shells, ausgegeben. Falls in den Variablenwerten keine besonderen Zeichen oder Leerraumzeichen enthalten sind, erfolgt keine Maskierung und die Zuweisungen haben die Form »VARIABLE=Wert«. Falls Leerraumzeichen oder Zeichen, die für die Shell eine besondere Bedeutung haben, vorhanden sind, wird Dollar-Einzelanführungszeichen-Maskierung verwandt und die Zuweisungen haben die Form »VARIABLE=$'Wert'«. Diese Syntax wird bekanntermaßen von bash(1), zsh(1), ksh(1) und der busybox(1)-ash(1), aber nicht von dash(1) und fish(1) unterstützt.

    Beachten Sie, dass dies den effektiven Block zeigt, d.h. die Kombination aus den mittels der Konfigurationsdateien, der Umgebungsgeneratoren und IPC (d.h. mittels des nachfolgend beschriebenen set-environment) konfigurierten Umgebungsvariablen. Sobald ein Unit-Prozess mit fork(2) abgetrennt wird, wird dieser kombinierte Umgebungsblock weiter mit den Unit-bezogenen Umgebungsvariablen kombiniert, die für diesen Befehl nicht sichtbar sind.

set-environment VARIABLE=WERT…
    Setzt eine oder mehrere Diensteverwalter-Umgebungsvariablen, wie auf der Befehlszeile angegeben. Dieser Befehl wird fehlschlagen, falls die Variablennamen und -werte nicht den vorher beschriebenen Regeln folgen.

    Beachten Sie, dass dies auf einem Umgebungsblock agiert, der von dem durch den Diensteverwalter (aus dessen Konfiguration) und den Umgebungsgeneratoren konfigurierten Block getrennt ist. Wann immer ein Prozess aufgerufen wird, werden die zwei Blöcke kombiniert (auch unter Aufnahme der dienstebezogenen Umgebungsvariablen) und dieser an ihn übergeben. Der Unterbefehl show-environment wird die Kombination der Blöcke zeigen, siehe oben.

    Hinzugefügt in Version 233.

unset-environment VARIABLE…
    Setzt eine oder mehrere Umgebungsvariablen des Systemd-Verwalters zurück. Falls nur ein Variablenname angegeben ist, wird er unabhängig von seinem Wert entfernt. Falls eine Variable und ein Wert angegeben werden, wird die Variable nur entfernt, falls sie den angegebenen Wert hat.

    Beachten Sie, dass dies auf einem Umgebungsblock agiert, der von dem durch den Diensteverwalter (aus dessen Konfiguration) und den Umgebungsgeneratoren konfigurierten Block getrennt ist. Wann immer ein Prozess aufgerufen wird, werden die zwei Blöcke kombiniert (auch unter Aufnahme der dienstebezogenen Umgebungsvariablen) und dieser an ihn übergeben. Der Unterbefehl show-environment wird die Kombinationen der Blöcke zeigen, siehe oben. Beachten Sie, dass dies bedeutet, dass dieser Befehl nicht dazu verwandt werden kann, Umgebungsvariablen zurückzusetzen, die in den Konfigurationsdateien des Diensteverwalters oder mittels Generatoren definiert wurden.

    Hinzugefügt in Version 233.

import-environment VARIABLE…
    Importiert alle, eine oder mehrere Umgebungsvariablen, die auf dem Client gesetzt sind, in den Umgebungsblock des Systemd-Verwalters. Falls eine Liste mit einer oder mehrerer Umgebungsvariablennamen übergeben wird, werden deren Wert auf der Client-Seite dann in den Umgebungsblock des Verwalters importiert. Falls Namen davon keine gültigen Umgebungsvariablen sind oder gemäß der oben beschriebenen Regeln ungültige Werte haben, wird ein Fehler ausgelöst. Falls keine Argumente übergeben werden, wird der gesamte, vom Prozess systemctl geerbte Umgebungsblock importiert. In diesem Modus werden alle geerbten und ungültigen Variablen stillschweigend ignoriert.

    Der Import des vollständigen ererbten Umgebungsblocks (der Aufruf dieses Befehls ohne Argumente) ist als veraltet markiert. Eine Shell setzt Dutzende von Variablen, die nur lokal Sinn ergeben und nur für Prozesse gedacht sind, die Abkömmlinge der Shell sind. Solche Variablen sind im globalen Umgebungsblock für andere Prozesse verwirrend.

    Hinzugefügt in Version 209.

  Zustandsbefehle für den Verwalter

daemon-reload
    Lädt die Systemverwalterkonfiguration neu. Dies wird alle Generatoren neu ausführen (siehe systemd.generator(7)), alle Unit-Dateien neu laden und den gesamten Abhängigkeitsbaum neu erstellen. Während der Daemon neu geladen wird, bleiben sämtliche Sockets, an denen Systemd aufgrund von Benutzerkonfiguration auf Anfragen wartet, erreichbar.

    Dieser Befehl sollte nicht mit dem Befehl reload durcheinandergebracht werden.

daemon-reexec
    Führt den Systemd-Verwalter neu aus. Dies wird den Verwalterzustand serialisieren, die Prozesse neu ausführen und den Zustand wieder deserialisieren. Dieser Befehl ist eigentlich nur für die Fehlersuche und Paket-Upgrades geeignet. Manchmal mag er für schwergewichtige daemon-reload hilfreich sein. Während der Daemon neu ausgeführt wird, bleiben sämtliche Sockets, an denen Systemd aufgrund von Benutzerkonfiguration auf Anfragen wartet, erreichbar.

log-level [STUFE]
    Zeigt die aktuelle Protokollierstufe des Verwalters an, falls kein Argument angegeben ist. Falls das optionale Argument STUFE bereitgestellt wird, dann ändert der Befehl die aktuelle Protokollierstufe des Verwalters auf STUFE (akzeptiert die gleichen Werte wie für das in systemd(1) beschriebene --log-level=).

    Hinzugefügt in Version 244.

log-target [ZIEL]
    Zeigt das aktuelle Protokollierziel des Verwalters an, falls kein Argument angegeben ist. Falls das optionale Argument ZIEL bereitgestellt wird, dann ändert der Befehl das aktuelle Protokollierziel des Verwalters auf ZIEL (akzeptiert die gleichen Werte wie für das in systemd(1) beschriebene --log-target=).

    Hinzugefügt in Version 244.

service-watchdogs [yes|no]
    Zeigt den aktuellen Zustand des Laufzeitdienste-Watchdogs an, falls kein Argument angegeben ist. Falls ein optionales logisches Argument bereitgestellt wird, werden die globalen Laufzeitdienste-Watchdogs (WatchdogSec=) und Notfallaktionen (z.B. OnFailure= oder StartLimitAction=) aktiviert oder deaktiviert; siehe systemd.service(5). Der Hardware-Watchdog ist von dieser Einstellung nicht betroffen.

    Hinzugefügt in Version 244.

  Systembefehle

is-system-running
    Prüft, ob das System einsatzfähig ist. Dies liefert Erfolg (Exit-Code 0) zurück, wenn das System komplett hochgefahren und im Betrieb und insbesondere nicht beim Hochfahren, beim Herunterfahren oder im Wartungsmodus ist und wenn keine Dienste fehlgeschlagen sind. Ansonsten wird ein Fehlschlag zurückgeliefert (Exit-Code ist nicht null). Zusätzlich wird der aktuelle Zustand in einer kurzen Zeichenkette auf der Standardausgabe ausgegeben, siehe nachfolgende Tabelle. Verwenden Sie --quiet zum Unterdrücken dieser Ausgabe.

    Verwenden Sie --wait, um darauf zu warten, dass der Systemstartprozess abgeschlossen ist, bevor der aktuelle Zustand angezeigt und der angemessene Fehlerstatus zurückgeliefert wird. Falls --wait in Verwendung ist, werden die Zustände initializing oder starting nicht gemeldet, stattdessen wird der Befehl blockieren, bis ein späterer Zustand (wie running oder degraded) erreicht ist.

    Tabelle 4. Ausgabe von is-system-running
    Name | Beschreibung | Exit-Code
    initializing | Früher Systemstart, vor basic.target erreicht oder der Wartungs- Zustand betreten wurde. | > 0
    starting | Späte Startphase, bevor die Auftragswarteschlange erstmalig in den Leerlauf geht oder eines der Rettungsziele erreicht wird. | > 0
    running | Das System ist komplett betriebsbereit. | 0
    degraded | Das System ist betriebsbereit, aber eine oder mehrere Units sind fehlgeschlagen. | > 0
    maintenance | Das Rettungs- oder Notfallziel ist aktiv. | > 0
    stopping | Der Verwalter fährt sich herunter. | > 0
    offline | Der Verwalter läuft nicht. Insbesondere ist dies der Betriebszustand, falls ein inkompatibles Programm als Systemverwalter (PID 1) läuft. | > 0
    unknown | Der Betriebszustand konnte aufgrund von fehlenden Ressourcen oder einer anderen Fehlerursache nicht bestimmt werden. | > 0

    Hinzugefügt in Version 215.

default
    Betritt den Standardmodus. Dies ist zu systemctl isolate default.target äquivalent. Diese Aktion blockiert standardmäßig, verwenden Sie --no-block für asynchrones Verhalten.

rescue
    Betritt den Rettungsmodus. Dies ist zu systemctl isolate rescue.target äquivalent. Diese Aktion blockiert standardmäßig, verwenden Sie --no-block für asynchrones Verhalten.

emergency
    Betritt den Notfallmodus. Dies ist zu systemctl isolate emergency.target äquivalent. Diese Aktion blockiert standardmäßig, verwenden Sie --no-block für asynchrones Verhalten.

halt
    Fährt das System herunter und hält es an. Dies ist größtenteils äquivalent zu systemctl start halt.target --job-mode=replace-irreversibly --no-block, gibt aber auch eine Wall-Nachricht an alle Benutzer aus. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Halt-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist. Beachten Sie, dass diese Aktion einfach den Betriebssystemkernel nach dem Herunterfahren anhalten wird, die Hardware verbleibt eingeschaltet. Verwenden Sie systemctl poweroff, um das System auszuschalten (siehe unten).

    Falls mit --force kombiniert, wird das Herunterfahren aller laufenden Dienste übersprungen, alle Prozesse werden aber getötet und alle Dateisysteme ausgehängt oder nur lesbar eingehängt, sofort danach erfolgt das Anhalten des Systems. Falls --force zweimal angegeben ist, wird die Aktion sofort ausgeführt, ohne irgendeinen Prozess zu beenden oder ein Dateisystem auszuhängen. Dies kann zu Datenverlust führen. Beachten Sie, dass die Halt-Aktion von systemctl selbst ausgeführt wird, wenn --force zweimal angegeben wird und der Systemverwalter dann nicht kontaktiert wird. Dies bedeutet, dass der Befehl selbst dann erfolgreich sein sollte, wenn der Systemverwalter abgestürzt ist.

    Falls mit --when= kombiniert, wird das Herunterfahren nach dem angegebenen Zeitstempel eingeplant. Und --when=cancel wird das Herunterfahren abbrechen.

poweroff
    Fährt das System herunter und schaltet es aus. Dies ist größtenteils zu systemctl start poweroff.target --job-mode=replace-irreversibly --no-block äquivalent, gibt aber auch eine Wall-Nachricht an alle Benutzer aus. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Ausschalt-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist.

    Dieser Befehl berücksichtigt --force und --when= auf eine ähnliche Art wie halt.

reboot
    Fährt das System herunter und startet es neu.

    Dieser Befehl ist größtenteils zu systemctl start reboot.target --job-mode=replace-irreversibly --no-block äquivalent, gibt aber auch eine Wall-Nachricht an alle Benutzer aus. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Neustart-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist.

    Falls der Schalter --reboot-argument= angegeben ist, wird er als optionales Argument an den Systemaufruf reboot(2) übergeben.

    Die Optionen --boot-loader-entry=, --boot-loader-menu= und --firmware-setup können zur Auswahl, was nach einem Neustart erfolgen soll, verwandt werden. Für Details siehe die Beschreibung dieser Optionen.

    Dieser Befehl berücksichtigt --force und --when= auf eine ähnliche Art wie halt.

    Falls mittels kexec --load ein neuer Kernel geladen wurde, wird statt eines Neustarts ein kexec durchgeführt, außer »SYSTEMCTL_SKIP_AUTO_KEXEC=1« wurde gesetzt. Falls unter »/run/nextroot/« ein neues Wurzeldateisystem eingerichtet wurde, wird ein soft-reboot statt eines Neustarts durchgeführt, außer »SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1« wurde gesetzt.

    Hinzugefügt in Version 246.

kexec
    Fährt das System mittels kexec herunter und startet es neu. Dieser Befehl lädt einen Kexec-Kernel, falls noch keiner geladen wurde, oder schlägt fehl. Ein Kernel kann früher in einem separaten Schritt geladen werden. Dies ist insbesondere nützlich, falls eine angepasste Initrd oder zusätzliche Kernelbefehlszeilenoptionen gewünscht sind. --force kann zum Fortfahren ohne einen Kexec-Kernel verwandt werden, d.h. um einen normalen Neustart durchzuführen. Der abschließende Neustartschritt ist zu systemctl start kexec.target --job-mode=replace-irreversibly --no-block äquivalent.

    Um einen Kernel zu laden, erfolgt eine Aufzählung gemäß der UAPI.1-Systemstartlader-Spezifikation[1] und der Standard-Systemstarteintrag wird geladen. Damit dieser Schritt erfolgreich ist, muss das System UEFI verwenden und die Systemstartladereinträge geeignet konfiguriert sein. Zum Auflisten der Systemstarteinträge kann bootctl list verwandt werden, siehe bootctl(1).

    Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Neustart-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist.

    Dieser Befehl berücksichtigt --force und --when= auf eine ähnliche Art wie halt.

    Falls mittels kexec --load ein neuer Kernel geladen wurde, wird beim Aufruf eines reboot ein kexec durchgeführt, außer »SYSTEMCTL_SKIP_AUTO_KEXEC=1« wurde gesetzt.

soft-reboot
    Fährt das System herunter und startet den Anwendungsraum neu. Dies ist zu systemctl start soft-reboot.target --job-mode=replace-irreversibly --no-block äquivalent. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Neustart-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist.

    Dieser Befehl berücksichtigt --force und --when= auf eine ähnliche Art wie halt.

    Diese Aktion startet nur den Anwendungsraum neu, der Kernel verbleibt laufend. Siehe systemd-soft-reboot.service(8) zu Details.

    Falls unter »/run/nextroot/« ein neues Wurzeldateisystem eingerichtet wurde, wird ein soft-reboot durchgeführt, wenn reboot aufgerufen wurde, außer »SYSTEMCTL_SKIP_AUTO_SOFT_REBOOT=1« wurde gesetzt.

    Hinzugefügt in Version 254.

exit [EXIT-CODE]
    Bittet den Diensteverwalter, sich zu beenden. Dies wird nur für Benutzerdiensteverwalter (d.h. im Zusammenspiel mit der Option --user) oder in Containern unterstützt und ist andernfalls zu poweroff äquivalent. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Beende-Aktion in die Warteschlange eingereiht ist, ohne darauf zu warten, dass er abgeschlossen ist.

    Falls EXIT_CODE übergeben wurde, wird sich der Diensteverwalter mit dem angegebenen Exit-Code beenden.

    Hinzugefügt in Version 227.

switch-root [WURZEL [INIT]]
    Schaltet auf ein anderes Wurzelverzeichnis und führt darunter einen neuen Systemverwalter aus. Dies ist für den Einsatz in der Initrd gedacht und wird vom Systemverwalter der Initrd (d.h. dem »Init«-Prozess, PID 1) auf dem Hauptsystemverwalterprozess wechseln, der vom tatsächlichen Wurzeldateisystem des Rechners geladen wird. Dieser Aufruf akzeptiert zwei Argumente: das Verzeichnis, das das neue Wurzelverzeichnis werden soll und der Pfad des neuen Systemverwalterprogramms darunter, das als PID 1 ausgeführt werden soll. Falls beide nicht angegeben sind oder erstere eine leere Zeichenkette ist, ist die Vorgabe /sysroot/. Falls letzterer nicht angegeben wird oder eine leere Zeichenkette ist, wird automatisch nach einem Systemd-Programm gesucht und dieses als Diensteverwalter verwandt/. Falls der Systemverwalterpfad nicht angegeben wird, der leeren Zeichenkette gleicht oder identisch zu dem Pfad zu dem Systemdprogramm ist, wird der Zustand des Systemverwalterprozesses der Initrd an den Hauptsystemverwalter übergeben, womit Letzterem eine Selbstüberprüfung des Zustands der in der Initird-Systemstartphase beteiligten Dienste ermöglicht wird.

    Hinzugefügt in Version 209.

sleep
    Bringt das System mittels suspend, hibernate, hybrid-sleep oder suspend-then-hibernate zum Schlafen. Die zu verwendende Schlafaktion wird von systemd-logind.service(8) automatisch ausgewählt. Standardmäßig wird suspend-then-hibernate verwandt, dann auf suspend zurückgefallen und dann hibernate, falls dies nicht unterstützt wird. Es wird auf die Einstellung SleepOperation= in logind.conf(5) zu weiteren Details verwiesen. Dieser Befehl ist asynchron und kehrt zurück, nachdem die Schlafaktion erfolgreich in die Warteschlange gestellt wurde. Er wird nicht darauf warten, dass der Schlaf-/Wiederaufwachzyklus abgeschlossen wurde.

    Hinzugefügt in Version 256.

suspend
    Suspendiert das System. Dies wird die Aktivierung der besonderen Ziel-Unit suspend.target auslösen. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Suspendier-Aktion erfolgreich in die Warteschlange eingereiht ist. Er wird nicht darauf warten, dass der Suspendier-/Wiederaufnahmezyklus abgeschlossen ist.

    Falls --force angegeben wurde und systemd-logind(8) einen Fehler für die Aktion zurücklieferte, wird der Fehler ignoriert und die Aktion wird erneut durch direktes Starten der Ziel-Unit versucht.

hibernate
    Bringt das System in den Ruhezustand. Dies wird die Aktivierung der besonderen Ziel-Unit hibernate.target auslösen. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die Ruhezustandsaktion erfolgreich in die Warteschlange eingereiht ist. Er wird nicht darauf warten, dass der Ruhezustand-/Wiederaufwachzyklus abgeschlossen ist.

    Dieser Befehl berücksichtigt --force auf die gleiche Art wie suspend.

hybrid-sleep
    Bringt das System in den Ruhezustand und suspendiert es. Dies wird die Aktivierung der besonderen Ziel-Unit hybrid-sleep.target auslösen. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die hybride Schlafaktion erfolgreich in die Warteschlange eingereiht ist. Er wird nicht darauf warten, dass der Schlaf-/Wiederaufwachzyklus abgeschlossen ist.

    Dieser Befehl berücksichtigt --force auf die gleiche Art wie suspend.

    Hinzugefügt in Version 196.

suspend-then-hibernate
    Suspendiert das System, wenn der Akkustand niedrig ist oder wenn die in systemd-sleep.conf angegebene Verzögerung abgelaufen ist und bringt es in den Ruhezustand. Dies wird die Aktivierung der besonderen Ziel-Unit suspend-then-hibernate.target auslösen. Dieser Befehl ist asynchron; er wird zurückkehren, nachdem die hybride Schlafaktion erfolgreich in die Warteschlange eingereiht ist. Er wird nicht darauf warten, dass der Schlaf-/Wiederaufwachzyklus oder Ruhezustand-/Wiederaufwachzyklus abgeschlossen ist.

    Dieser Befehl berücksichtigt --force auf die gleiche Art wie suspend.

    Hinzugefügt in Version 240.

  Parametersyntax

Die oben aufgeführten Unit-Befehle akzeptieren entweder einen einzelnen Unit-Namen (als UNIT bezeichnet) oder mehrere Unit-Angaben (als MUSTER … bezeichnet). Im ersten Fall muss der Unit-Name mit oder ohne Endung angegeben werden. Falls die Endung nicht angegeben ist (der Unit-Name »abgekürzt« wurde), wird Systemctl eine geeignete Endung anhängen, standardmäßig ».service«, und typabhängige Endungen im Falle von Befehlen, die nur auf bestimmte Unit-Typen agieren. Beispielsweise sind

    # systemctl start sshd

und

    # systemctl start sshd.service

äquivalent, wie auch

    # systemctl isolate default

und

    # systemctl isolate default.target

Beachten Sie, dass der (absolute) Pfad zu den Geräteknoten automatisch in einen Geräte-Unit-Namen und andere (absolute) Pfade zu Einhänge-Unit-Namen umgewandelt werden.

    # systemctl status /dev/sda
    # systemctl status /home

ist äquivalent zu:

    # systemctl status dev-sda.device
    # systemctl status home.mount

Im zweiten Fall werden Shell-artige Globs mit den primären Namen aller derzeit im Speicher befindlichen Units abgeglichen; wörtliche Unit-Namen, mit oder ohne eine Endung, werden wie im ersten Fall behandelt. Das bedeutet, dass sich wörtliche Unit-Namen immer auf genau eine Unit beziehen, aber Globs auf null Units passen können, was nicht als Fehler betrachtet wird.

Glob-Muster verwenden fnmatch(3), daher werden normale Shell-artige Glob-Regeln verwandt und »*«, »?« und »[]« dürfen verwendet werden. Siehe glob(7) für weitere Details. Die Muster werden mit den primären Namen der derzeit im Speicher befindlichen Units verglichen und Muster, die auf nichts passen, werden ohne Rückmeldung übersprungen. Beispielsweise wird

    # systemctl stop "sshd@*.service"

alle sshd@.service-Instanzen stoppen. Beachten Sie, dass Aliasnamen von Units und Units, die sich nicht im Speicher befinden, für die Glob-Erweiterung nicht berücksichtigt werden.

Für Unit-Dateibefehle sollte die angegebene UNIT der Name der Unit-Datei (möglicherweise abgekürzt, siehe oben) oder der absolute Pfad zu der Unit-Datei sein:

    # systemctl enable foo.service

oder

    # systemctl link /path/to/foo.service

OPTIONEN

Die folgenden Optionen werden verstanden:

-t, --type=
    Das Argument ist eine Kommata-getrennte Liste der Unit-Typen wie service und socket. Wenn Units mit list-units, list-dependencies, show oder status aufgelistet werden, werden nur die angegebenen Typen gezeigt. Standardmäßig werden Units aller Typen angezeigt.

    Als Spezialfall wird eine Liste der erlaubten Werte angezeigt und das Programm beendet sich, falls eines der Argumente help ist.

--state=
    Das Argument ist eine Kommata-getrennte Liste von Zuständen LOAD, SUB oder ACTIVE sein. Zeigt nur die Units in den angegebenen Zuständen an, wenn diese mit list-units, list-dependencies, show oder status aufgelistet werden. Verwenden Sie --state=failed oder --failed, um nur fehlgeschlagene Units anzuzeigen.

    Als Spezialfall wird eine Liste der erlaubten Werte angezeigt und das Programm beendet sich, falls eines der Argumente help ist.

    Hinzugefügt in Version 206.

-p, --property=
    Begrenzt die Anzeige auf die angegebenen Eigenschaften bei der Anzeige der Eigenschaften von Units/Aufträgen/Verwalter mit dem Befehl show. Das Argument sollte eine Kommata-getrennte Liste von Eigenschaftsnamen wie »MainPID« sein. Falls nicht angegeben, werden alle bekannten Eigenschaften angezeigt. Falls mehr als einmal angegeben, werden alle Eigenschaften mit den angegebenen Namen angezeigt. Für Eigenschaftsnamen ist die Shell-Vervollständigung implementiert.

    Für den Verwalter selbst wird systemctl show alle verfügbaren Eigenschaften anzeigen. Die meisten davon sind von den in systemd-system.conf(5) beschriebenen Optionen abgeleitet oder stimmen eng mit ihnen überein.

    Eigenschaften für Units unterscheiden sich zwischen Unit-Typen, daher ist die Anzeige einer Unit (selbst einer nicht vorhandenen) ein Weg, um die Eigenschaften, die diese Unit betreffen, aufzulisten. Ähnlich wird die Anzeige eines Auftrags die allen Aufträgen zugehörigen Eigenschaften auflisten. Eigenschaften für Units sind in systemd.unit(5) und den Seiten für die individuellen Unit-Typen systemd.service(5), systemd.socket(5) usw. dokumentiert.

-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 246.

-a, --all
    Zeigt beim Auflisten von Units mit list-units auch inaktive Units und Units, die anderen Units folgen, an. Bei der Anzeige der Eigenschaften von Units/Aufträgen/Verwaltern werden alle Eigenschaften angezeigt, unabhängig davon, ob sie gesetzt sind oder nicht.

    Um alle im Dateisystem installierten Units aufzulisten, verwenden Sie stattdessen den Befehl list-unit-files.

    Zeigt beim Auflisten von Units mit list-dependencies alle abhängigen Units rekursiv an (standardmäßig werden nur Abhängigkeiten von Ziel-Units angezeigt).

    Zeigt bei der Verwendung mit status Journal-Nachrichten vollständig an, selbst falls sie nicht darstellbaren Zeichen enthalten oder sehr lang sind. Standardmäßig werden Felder mit nicht darstellbaren Zeichen als »blob data« abgekürzt. (Beachten Sie, dass das Textanzeigeprogramm die nicht darstellbaren Zeichen wieder maskieren könnte.)

-r, --recursive
    Zeigt beim Auflisten von Units auch Units von lokalen Containern an. Units von lokalen Containern wird der Container-Name vorangestellt, getrennt durch einen einzelnen Doppelpunkt (»:«).

    Hinzugefügt in Version 212.

--reverse
    Zeigt mit list-dependencies inverse Abhängigkeiten an, d.h. folgt Abhängigkeiten vom Typ WantedBy=, RequiredBy=, UpheldBy=, PartOf=, BoundBy= statt Wants= und ähnlichen.

    Hinzugefügt in Version 203.

--after
    Zeigt mit list-dependencies Units an, die vor der angegebenen Unit angeordnet sind. Mit anderen Worten, listet rekursiv Units, die der Abhängigkeit After= folgen, auf.

    Beachten Sie, dass jede Abhängigkeit After= automatisch gespiegelt wird, um eine Abhängigkeit Before= zu erstellen. Temporäre Abhängigkeiten können explizit angegeben werden, werden aber auch implizit für Units mit den Zielen WantedBy= (siehe systemd.target(5)) und als Ergebnis von anderen Anweisungen (beispielsweise RequiresMountsFor=) erstellt. Sowohl explizit als auch implizit eingeführte Abhängigkeiten werden mit list-dependencies angezeigt.

    Bei der Übergabe an den Befehl list-jobs wird für jeden dargestellten Auftrag angezeigt, welche anderen Aufträge auf ihn warten. Kann mit --before kombiniert werden, um sowohl die Aufträge, die auf jeden Auftrag warten, als auch alle Aufträge, auf die jeder Auftrag wartet anzuzeigen.

    Hinzugefügt in Version 203.

--before
    Zeigt mit list-dependencies Units an, die nach der angegebenen Unit angeordnet sind. Mit anderen Worten, listet rekursiv Units, die der Abhängigkeit Before= folgen, auf.

    Bei der Übergabe an den Befehl list-jobs wird für jeden dargestellten Auftrag angezeigt, auf welche anderen Aufträge er wartet. Kann mit --after kombiniert werden, um sowohl die Aufträge, die auf jeden Auftrag warten, als auch alle Aufträge, auf die jeder Auftrag wartet anzuzeigen.

    Hinzugefügt in Version 212.

--with-dependencies
    Bei der Verwendung mit status, cat, list-units und list-unit-files geben diese Befehle alle angegebenen Units und die Abhängigkeiten von diesen Units aus.

    Die Optionen --reverse, --after, --before können zur Änderung, welche Abhängigkeitsarten gezeigt werden, verwandt werden.

    Hinzugefügt in Version 245.

-l, --full
    Verkürzt Unit-Namen, Prozessbaumeinträge, Journal-Ausgabe nicht und schneidet Unit-Beschreibungen in der Ausgabe von status, list-units, list-jobs und list-timers nicht ab.

    Zeigt auch Installationsziele in der Ausgabe von is-enabled an.

--value
    Zeigt bei der Ausgabe der Eigenschaften mit show nur den Wert an, der Eigenschaftsname und das »=« wird übersprungen. Siehe auch obige Option -P.

    Hinzugefügt in Version 230.

--show-types
    Zeigt bei der Anzeige von Sockets auch den Typ des Sockets an.

    Hinzugefügt in Version 202.

--job-mode=
    Beim Einstellen eines Auftrags in die Warteschlangen steuert diese Option, wie mit bereits in der Warteschlange befindlichen Aufträgen umgegangen werden soll. Sie akzeptiert entweder »fail«, »lenient«, »replace«, »replace-irreversibly«, »isolate«, »ignore-dependencies«, »ignore-requirements«, »flush«, »triggering« oder »restart-dependencies«. Standardmäßig »replace«, außer wenn der Befehl isolate verwandt wird, da dieser den Auftragsmodus »isolate« impliziert.

    Falls »fail« angegeben ist und die angeforderte Aktion auf schwachen Abhängigkeiten in Konflikt mit einem anhängigen Auftrag steht (genauer: dazu führt, dass ein anhängiger Auftrag in einen Stopp-Auftrag oder umgedreht umgewandelt wird), wird die Aktion fehlschlagen.

    Falls »lenient« angegeben ist und die angeforderte Aktion in Konflikt mit einer aktiven/aktivierenden Unit steht, wird die Aktion fehlschlagen.

    Falls (die Vorgabe) »replace« angegeben ist, wird jeder in Konflikt stehende anhängige Auftrag falls notwendig ersetzt.

    Falls »replace-irreversibly« angegeben ist, wird wie bei »replace« agiert, aber die neuen Aufträge als unumkehrbar markiert. Dies hindert zukünftige in Konflikt stehende Transaktionen daran, diese Aufträge zu ersetzen (oder sie selbst daran, in die Warteschlange aufgenommen zu werden, während die irreveresiblen Aufträge noch anhängig sind). Irreversible Aufträge können weiterhin mit dem Befehl cancel abgebrochen werden. Dieser Auftragmodus sollte bei jeder Transaktion, die shutdown.target hereinzieht, verwandt werden.

    »isolate« ist nur für Startaktionen gültig und führt dazu, dass alle anderen Units beendet werden, wenn die angegebene Unit gestartet wird. Dieser Modus wird immer verwandt, wenn der Befehl isolate verwandt wird.

    »flush« führt dazu, dass alle Aufträge in der Warteschlange abgebrochen werden, wenn der neue Auftrag in die Warteschlange eingestellt wird.

    Falls »ignore-dependencies« angegeben ist, werden alle Unit-Abhängigkeiten für diesen neuen Auftrag ignoriert und die Aktion wird sofort ausgeführt. Falls übergeben, werden keine für die Unit benötigten Units hereingezogen und keine Ordnungsabhängigkeiten berücksichtigt. Dies dient hauptsächlich der Fehlersuche und als Rettungswerkzeug für den Administrator und sollte von Anwendungen nicht verwandt werden.

    »ignore-requirements« ist ähnlich zu »ignore-dependencies«, führt aber nur dazu, dass die Voraussetzungsabhängigkeiten ignoriert werden, die Ordnungsabhängigkeiten werden weiterhin respektiert.

    »triggering« kann nur mit systemctl stop verwandt werden. In diesem Modus wird die angegebene Unit und alle aktiven Units, die es auslöst, gestoppt. Siehe die Diskussion von Triggers= in systemd.unit(5) für weitere Informationen über auslösende Units.

    »restart-dependencies« darf nur mit systemctl start verwandt werden. In diesem Modus werden Abhängigkeiten der angegebenen Unit eine Neustart-Weiterleitung erhalten, als ob der Neustart-Auftrag für die Unit in die Warteschlange gestellt worden wäre.

    Hinzugefügt in Version 209.

-T, --show-transaction
    Zeigt eine knappe Information über alle Aufträge in der Warteschlange an, wenn eine Unit in die Warteschlange gestellt wird (beispielsweise als Auswirkung des Aufrufs systemctl start oder ähnlichem). Dabei werden sowohl die angeforderten Aufträge als auch alle aufgrund von Unit-Abhängigkeiten hinzugefügte berücksichtigt. Beachten Sie, dass die Ausgabe nur Aufträge enthalten wird, die sofort Teil der angeforderten Transaktion sind. Es ist möglich, dass die Ausführung des Programmcodes des Dienstes zum Hochfahren die Auswirkung hat, dass die angeforderten Aufträge dass Hereinziehen weiterer Aufträge anfordern. Das bedeutet, dass beim Abschluss der angezeigten Aufträge letztendlich mehr Aufträge als die angezeigten enthalten sein könnten.

    Hinzugefügt in Version 242.

--fail
    Kurzform von --job-mode=fail.

    Wird dies mit dem Befehl kill zusammen verwandt, wird die Aktion zu einem Fehler führen, falls keine Units getötet wurden.

    Hinzugefügt in Version 227.

--check-inhibitors=
    Steuert, wie das Überprüfen der Unterdrückungssperren erfolgt, wenn das Herunterfahren oder der Schlafzustand erbeten wurde. Sie akzeptiert entweder »auto«, »yes« und »no«. Standardmäßig »auto«, was bedeutet, dass Logind die Prüfung durchführen und die aktiven Unterdrückungssperren berücksichtigen wird, aber systemctl wird nur auf der Client-Seite eine Überprüfung auf interaktive Aufrufe (d.h. von einem TTY) ausführen, so dass ein benutzerfreundlicherer und informativer Fehler an den Benutzer zurückgeliefert werden kann. »no« deaktiviert die Überprüfungen sowohl in systemctl als auch in systemd-logind(8).

    Anwendungen können Unterdrückungssperren einrichten, um zu verhindern, dass bestimmte wichtige Aktionen (wie das Brennen von CDs) durch das Herunterfahren des Systems oder Schlafen unterbrochen werden. Jeder Benutzer kann diese Sperren erlangen und privilegierte Benutzer dürfen diese Sperren außer Kraft setzen. Falls irgendwelche Sperren erlangt wurden, werden Anfragen zum Herunterfahren oder für Schlafzustände normalerweise fehlschlagen (außer dies wurde explizit mit »no« außer Kraft gesetzt).

    Die Option --force stellt eine andere Möglichkeit, Unterdrücker außer Kraft zu setzen, bereit.

    Hinzugefügt in Version 248.

-i
    Kurzform für --check-inhibitors=no.

    Hinzugefügt in Version 198.

--dry-run
    Gibt einfach aus, was getan würde. Momentan von den Unterbefehlen halt, poweroff, reboot, kexec, suspend, hibernate, hybrid-sleep, suspend-then-hibernate, default, rescue, emergency und exit unterstützt.

    Hinzugefügt in Version 236.

-q, --quiet
    Unterdrückt die Ausgabe des Ergebnisses der verschiedenen Befehle und auch die Hinweise auf abgeschnittene Protokollzeilen. Dies unterdrückt nicht die Ausgabe von Befehlen, für die die dargestellte Ausgabe das einzige Ergebnis ist (wie show). Fehler werden immer ausgegeben.

-v, --verbose
    Zeigt die Protokollausgabe der Unit während der Ausführung von Unit-Aktionen.

    Hinzugefügt in Version 258.

--no-warn
    In den folgenden Fällen werden die standardmäßigen Warnungen nicht angezeigt:

        • Wenn systemctl aufgerufen wird, ohne das procfs auf /proc/ eingehängt ist,

        • wenn enable oder disable bei Units ohne Installationsinformationen verwandt wird (d.h. dass diese keinen oder eine leeren Abschnitt »[Install]« enthalten),

        • bei der Verwendung von disable kombiniert mit --user auf Units, die im globalen Bereich aktiviert sind,

        • wenn eine Unit im Zustand stop, disable oder mask ist, aber weiterhin aktive auslösende Units hat,

        • wenn eine Unit-Datei geändert wurde und daemon-reload benötigt wird.

    Hinzugefügt in Version 253.

--no-block
    Wartet nicht synchron darauf, dass die angefragte Aktion sich beendet. Falls dies nicht angegeben ist, wird der Auftrag überprüft, in die Warteschlange eingereiht und systemctl wartet, bis das Hochfahren der Unit abgeschlossen ist. Durch Übergabe dieses Arguments wird nur überprüft und in die Warteschlange eingereiht. Diese Option darf nicht mit --wait kombiniert werden.

--wait
    Wartet bei der Verwendung mit start oder restart synchron darauf, dass gestartete Units sich wieder beenden. Diese Option darf nicht mit --no-block kombiniert werden. Beachten Sie, dass dies ewig warten wird, falls eine übergebene Unit sich nie beendet (entweder selbst oder explizit gestoppt wird); insbesondere Dienste, die »RemainAfterExit=yes« verwenden.

    Wird dies zusammen mit is-system-running verwandt, wird gewartet, bis der Systemstartprozess abgeschlossen ist, bevor zurückgekehrt wird.

    Wird dies zusammen mit kill verwandt, wird gewartet, bis sich die signalisierten Units beendet haben. Beachten Sie, dass dies für immer warten wird, falls eine der angegebenen Units sich niemals beendet.

    Hinzugefügt in Version 232.

--user
    Kommuniziert mit dem Diensteverwalter des aufrufenden Benutzers statt mit dem Diensteverwalter des Systems.

--system
    Kommuniziert mit dem Diensteverwalter des Systems. Dies ist die implizite Vorgabe.

--failed
    Listet Units im fehlgeschlagenen Zustand auf. Dies ist zu --state=failed äquivalent.

    Hinzugefügt in Version 233.

--no-wall
    Versendet keine Wall-Nachrichten vor halt, power-off und reboot.

--global
    Agiert im globalen Benutzerverzeichnis, falls mit enable und disable verwandt, und gibt somit eine Unit-Datei global für alle zukünftigen Anmeldungen aller Benutzer frei oder schaltetet sie aus.

--no-reload
    Lädt Daemon-Konfiguration nach der Ausführung der Änderung nicht implizit neu, falls mit enable, disable, preset, mask oder unmask verwandt.

--kill-whom=
    Wählt bei der Verwendung mit kill aus, welchen Prozessen ein UNIX-Prozesssignal gesandt werden soll. Muss einer aus main, control, cgroup und all sein, um auszuwählen, ob nur der Hauptprozess, der Steuerprozess, alle Prozesse in der Control Group der Unit oder alle Prozesse der Unit getötet werden soll(en). Der Hauptprozess der Unit ist derjenige, der die Lebensdauer bestimmt. Ein Steuerprozess einer Unit ist derjenige, der durch den Verwalter aufgerufen wird, um Statusänderungen zu veranlassen. Beispielsweise sind alle Prozesse, die aufgrund von ExecStartPre=-, ExecStop=- oder ExecReload=-Einstellungen von Dienste-Units gestartet werden, Steuerprozesse. Beachten Sie, dass es für jeden Zeitpunkt nur einen Steuerprozess pro Unit gibt, da nur eine Statusänderung gleichzeitig ausgeführt wird. Für Dienste vom Typ Type=forking ist der vom Verwalter für ExecStart= initial gestartete Prozess der Steuerprozess, während der schließlich mittels Fork gestartete Prozess dann als Hauptprozess der Unit betrachtet wird (falls er bestimmt werden kann). Dies ist für Dienste-Units von anderen Typen verschieden, wo der vom Verwalter für ExecStart= mit Fork gestartete Prozess immer der Hauptprozess selbst ist. Eine Dienste-Unit besteht aus keinem oder einem Hauptprozess, keinem oder einem Steuerprozess sowie einer beliebigen Anzahl von zusätzlichen Prozessen, die Teil der Control Group der Unit sind. Allerdings verwalten nicht alle Unit-Typen Prozesse dieser Typen. Für Einhänge-Units sind beispielsweise Steuerprozesse definiert (die die Aufrufe von /bin/mount und /bin/umount sind), aber es ist kein Hauptprozess definiert. Falls weggelassen, ist die Vorgabe all, außer wenn --kill-subgroup= verwandt wird, dann ist die Vorgabe cgroup.

    Hinzugefügt in Version 252.

--kill-value=GANZZAHL
    Stellt bei der Verwendung zusammen mit dem Befehl kill ein Signal zusammen mit dem ganzzahligen Werteparameter zu den angegebenen Prozess(en) in die Warteschlange. Diese Aktion ist nur für POSIX-Echtzeitsignale verfügbar (d.h. --signal=SIGRTMIN+… oder --signal=SIGRTMAX-… und stellt sicher, dass Signale mittels des Systemaufrufs sigqueue(3) anstelle von kill(3) erstellt werden. Der angegebene Wert muss eine vorzeichenbehaftete 32-bit Ganzzahl sein und darf in dezimaler, hexadezimaler (mit vorangestelltem »0x«), oktaler (mit vorangestelltem »0o«) oder binärer (mit vorangestelltem »0b«) Darstellung angegeben werden.

    Falls diese Option verwandt wird, wird dieses Signal nur bei dem Steuer- oder Hauptprozess der Unit in die Warteschlange gestellt, niemals bei anderen Prozessen, die zu der Unit gehören, d.h. --kill-whom=all wird nur die Haupt- und Steuerprozesse betreffen, aber keine anderen Prozesse.

    Hinzugefügt in Version 254.

--kill-subgroup=PFAD
    Akzeptiert einen Control-Group-Unterpfad, an den Signale gesandt werden, zur Verwendung mit dem Befehl kill. Standardmäßig wird das ausgewählte Signal an alle Prozesse der Group der Unit (sowie an den Haupt-/Steuerprozess (falls außerhalb) – abhängig von --kill-whom=) gesandt. Mit dieser Option kann aber eine Untergruppe ausgewählt werden. Diese Funktionalität ist nur verfügbar, falls »cgroup« oder »cgroup-fail« in --kill-whom= verwandt werden und tatsächlich ist erstere die Vorgabe, falls --kill-subgroup= verwandt wird.

    Dem angegebenen Pfad darf, muss aber nicht ein Schrägstrich vorangestellt werden und seine Existenz oder Abwesenheit macht keinen Unterschied, der Pfad wird immer als relativ zum Haupt-Control-Group-Pfad der Unit gewählt.

    Diese Funktionalität ist nur für Units verfügbar, deren Control-Group-Delegierung aktiviert ist (siehe Delegate= in systemd.resource-control(5)).

    Hinzugefügt in Version 258.

-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.

--what=
    Wählt aus, welche Art von Unit-bezogenen Ressourcen entfernt werden, wenn der Befehl clean aufgerufen wird, siehe oben. Akzeptiert entweder configuration, state, cache, logs, runtime oder fdstore, um die Art der Ressource auszuwählen. Diese Option kann mehr als einmal angegeben werden, wodurch alle angegebenen Ressourcentypen entfernt werden. Akzeptiert auch den besonderen Wert all, als Abkürzung zur Angabe aller sechs Ressourcentypen. Falls diese Option nicht angegeben ist, ist die Vorgabe die Kombination von cache, runtime und fdstore, d.h. den drei Arten von Ressourcen, die im Allgemeinen als redundant betrachtet und beim nächsten Aufruf rekonstruiert werden können. Beachten Sie, dass die explizite Entfernung des Ressourcentyps fdstore nur nützlich ist, falls die Option FileDescriptorStorePreserve= aktiviert ist, da der Dateideskriptorspeicher andernfalls automatisch bereinigt wird, wenn die Unit gestoppt wird.

    Hinzugefügt in Version 243.

-f, --force
    Setzt bei der Verwendung mit enable alle existierenden, im Konflikt stehenden Symlinks außer Kraft.

    Erstellt bei der Verwendung mit edit alle angegebenen Units, die noch nicht existieren.

    Ignoriert bei der Verwendung mit suspend, hibernate, hybrid-sleep oder suspend-then-hibernate den durch systemd-logind(8) zurückgelieferten Fehler und die Aktion wird direkt durch Starten der entsprechenden Units ausgeführt.

    Führt bei der Verwendung mit halt, poweroff, reboot oder kexec die ausgewählten Aktionen ohne Herunterfahren aller Units aus. Allerdings werden alle Prozesse zwangsweise beendet und alle Dateisysteme ausgehängt oder neu nur lesbar wieder eingehängt. Dies ist daher eine drastische, aber relativ sichere Option, um einen sofortigen Neustart anzufragen. Falls --force zweimal für diese Aktionen angegeben ist (mit der Ausnahme von kexec), werden sie sofort ausgeführt, ohne alle Prozesse zu beenden oder Dateisysteme auszuhängen.

        Warnung
        Die zweifache Angabe von --force mit jeden dieser Aktionen kann zu Datenverlust führen. Beachten Sie, dass bei zweifacher Angabe von --force die ausgewählte Aktion von systemctl selbst ausgeführt wird und kein Kontakt zum Systemverwalter aufgenommen wird. Dies bedeutet, dass dieser Befehl erfolgreich sein sollte, selbst wenn der Systemverwalter abgestürzt ist.

--message=
    Setzt bei der Verwendung mit halt, poweroff oder reboot eine kurze Nachricht, die den Grund für die Aktion beschreibt. Die Nachricht wird zusammen mit der Standard-Herunterfahrnachricht protokolliert.

    Hinzugefügt in Version 225.

--now
    Startet/Stoppt/Versucht-startet die Units, nachdem die angegeben Unit-Dateiaktionen erfolgreich waren, falls mit enable, disable, mask oder reenable verwandt.

    Hinzugefügt in Version 220.

--root=
    Verwendet beim Einsatz mit enable/disable/is-enabled (und verwandten Befehlen) die angegebenen Wurzelpfade beim Suchen nach Unit-Dateien verwandt. Falls diese Option vorhanden ist, wird systemctl auf dem Dateisystem direkt arbeiten, statt mit dem Daemon systemd zu kommunizieren, um die Änderungen auszuführen.

--image=Abbild
    Akzeptiert einen Pfad zu einer Plattenabbilddatei oder einem Blockgerätenamen. Falls angegeben, werden alle Aktionen auf das Dateisystem in dem angegebenen Plattenabbild angewandt. Diese Option ist ähnlich zu --root=, agiert aber auf Dateisystemen, die in Plattenabbildern oder Blockgeräten gespeichert sind. Das Plattenabbild sollte entweder nur ein Dateisystem oder eine Reihe von Dateisystemen innerhalb einer GPT-Partitionstabelle enthalten, die der UAPI.2-Spezifikation für auffindbare Partitionen[2] folgt. Für weitere Informationen über unterstützte Plattenabbilder, siehe den Schalter von systemd-nspawn(1) mit dem gleichen Namen.

    Hinzugefügt in Version 252.

--image-policy=Richtlinie
    Akzeptiert gemäß systemd.image-policy(7) eine Abbildrichtlinienzeichenkette als Argument. Die Richtlinie wird bei Aktionen auf dem mittels --image= angegebenen Plattenabbild durchgesetzt, siehe oben. Falls nicht angegeben ist die Vorgabe die Richtlinie »*«, d.h. alle erkannten Dateisysteme im Abbild werden verwandt.

--runtime
    Führt bei der Verwendung mit enable, disable, edit (und verwandten Befehlen) Änderungen nur temporär durch, so dass sie beim nächsten Neustart verloren sind. Dies hat den Effekt, dass Änderungen nicht in dem Unterverzeichnis von /etc/, sondern in /run/ durchgeführt werden, mit identischen sofortigen Effekten, da allerdings die Änderungen bei letzterem beim Neustart verloren gehen, gehen auch die Änderungen verloren.

    Ähnlich erfolgen bei der Verwendung mit set-property die Änderungen nur temporär, so dass sie beim nächsten Neustart verloren sind.

--preset-mode=
    Akzeptiert »full« (die Vorgabe), »enable-only« oder »disable-only«. Steuert bei der Verwendung mit den Befehlen preset oder preset-all, ob Units entsprechend der Voreinstellungsregeln ausgeschaltet oder freigegeben oder nur freigegeben oder nur ausgeschaltet werden sollen.

    Hinzugefügt in Version 215.

-n, --lines=
    Steuert bei der Verwendung mit status die Anzahl der anzuzeigenden Journal-Zeilen, gezählt von der neuesten. Akzeptiert als Argument eine positive Ganzzahl oder 0, um die Journal-Ausgabe zu deaktivieren. Standardmäßig 10.

-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«.

--firmware-setup
    Zeigt der Firmware des Systems bei der Verwendung mit dem Befehl reboot, poweroff oder halt an, dass für den nächsten Systemstart in die Firmware-Einrichtungsschnittstelle neu gestartet werden soll. Beachten Sie, dass diese Funktionalität nicht auf allen Systemen verfügbar ist.

    Hinzugefügt in Version 220.

--boot-loader-menu=Zeitüberschreitung
    Zeigt dem System-Bootloader im Zusammenhang mit dem Befehl reboot, poweroff oder halt an, dass der Bootloader beim nächsten Systemstart das Bootloader-Menü anzeigen soll. Akzeptiert einen Zeitwert als Parameter, der die Zeitüberschreitung des Menüs angibt. Übergeben Sie Null, um die Zeitüberschreitung des Menüs zu deaktivieren. Beachten Sie, dass nicht alle Bootloader diese Funktionalität unterstützten.

    Hinzugefügt in Version 242.

--boot-loader-entry=Kennung
    Zeigt dem System-Bootloader im Zusammenhang mit dem Befehl reboot, poweroff oder halt an, dass der Bootloader beim nächsten Systemstart in einen bestimmten Bootloader-Eintrag starten soll. Akzeptiert einen Bootlaoder-Eintragskennzeichner als Argument oder »help«, um die verfügbaren Einträge anzuzeigen. Beachten Sie, dass nicht alle Bootloader diese Funktionalität unterstützten.

    Hinzugefügt in Version 242.

--reboot-argument=
    Dieser Schalter wird mit reboot verwandt. Der Wert ist architektur- und firmwarespezifisch. Beispielsweise könnte »recovery« zum Auslösen der Systemwiederherstellung, »fota« könnte zum Auslösen der schnurlosen Firmware-Aktualisierung verwandt werden.

    Hinzugefügt in Version 246.

--plain
    Stellt bei der Verwendung mit list-dependencies, list-units oder list-machines die Ausgabe als Liste statt als Baum dar und lässt die Aufzählungskreise weg.

    Hinzugefügt in Version 203.

--timestamp=
    Ändert das Format der ausgegebenen Zeitstempel. Die folgenden Werte können verwandt werden:

    pretty (dies ist die Vorgabe)
        "Tag YYYY-MM-DD HH:MM:SS TZ"

        Hinzugefügt in Version 248.

    unix
        "@seconds-since-the-epoch"

        Hinzugefügt in Version 251.

    us, μs
        "Tag YYYY-MM-DD HH:MM:SS.UUUUUU TZ"

        Hinzugefügt in Version 248.

    utc
        "Tag YYYY-MM-DD HH:MM:SS UTC"

        Hinzugefügt in Version 248.

    us+utc, μs+utc
        "Tag YYYY-MM-DD HH:MM:SS.UUUUUU UTC"

        Hinzugefügt in Version 248.

    Hinzugefügt in Version 247.

--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 248.

--marked
    Nur zusammen mit reload-or-restart erlaubt. Stellt Neustartaufträge für alle Units, die die Markierung »needs-restart« tragen, und Neulade-Aufträge für Units, die die Markierung »needs-reload« tragen, in die Warteschlange. Wenn eine Unit, die zum Neuladen markiert ist, kein Neuladen unterstützt, dann wird ein Neustart in die Warteschlange eingestellt. Diese Eigenschaften können mittels set-property Markers=… gesetzt werden.

    systemctl wird darauf warten, dass in die Warteschlange eingestellte Aufträge sich beenden, außer wenn --no-block verwandt wird.

    Hinzugefügt in Version 248.

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

    Hinzugefügt in Version 248.

--drop-in=NAME
    Verwendet bei der Anwendung mit edit NAME als Ergänzungsdateiname statt der standardmäßigen override.conf.

    Hinzugefügt in Version 253.

--when=
    Plant bei der Verwendung mit halt, poweroff, reboot oder kexec die auszuführende Aktion für den angegebenen Zeitstempel ein. Dieser sollte der in systemd.time(7), Abschnitt »ZEITSTEMPEL AUSWERTEN« dokumentierten Syntax folgen. Falls insbesondere »show« angegeben ist, wird die aktuell eingeplante Aktion angezeigt, die durch Angabe einer leeren Zeichenkette oder »cancel« abgebrochen werden kann. »auto« wird die Aktion entsprechend des Wartungsfensters oder eine Minute in der Zukunft einplanen.

    Hinzugefügt in Version 254.

--stdin
    Liest bei der Verwendung mit edit den Inhalt der Datei direkt aus der Standardeingabe ein und startet den Editor nicht. In diesem Modus werden die alten Inhalte der Datei vollständig ersetzt. Dies ist nützlich, um Unit-Dateien in Skripten zu »bearbeiten«:

        $ systemctl edit --drop-in=limits.conf --stdin ein-Dienst.service <<EOF
        [Unit]
        AllowedCPUs=7,11
        EOF

    Mehrere Ergänzungen können in diesem Modus »bearbeitet« werden, der gleiche Inhalt wird in alle von ihnen geschrieben werden.

    Hinzugefügt in Version 256.

-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=
    Führt die Aktion in einem lokalen Container aus. Geben Sie den Namen des Containers an, zu dem verbunden werden soll. Optional kann diesem ein Benutzername, abgetrennt durch ein »@«-Zeichen, als der verbunden werden soll, vorangestellt werden. Falls die besondere Zeichenkette ».host« anstelle des Container-Names verwandt wird, wird eine Verbindung zu dem lokalen System aufgebaut (das ist nützlich, um sich zu dem Benutzerbus eines bestimmten Benutzers zu verbinden: »--user --machine=lennart@.host«. Falls die »@«-Syntax nicht verwandt wird, wird die Verbindung als Benutzer »root« vorgenommen. Falls die »@«-Syntax verwandt wird, kann entweder die linke oder die rechte Seite fortgelassen werden (aber nicht beide). In diesem Fall wird der lokale Benutzername und ».host« angenommen.

-C, --capsule=
    Führt die Aktion auf einer Kapsel aus. Geben Sie einen Kapselnamen an, zu dem verbunden werden soll. Siehe capsule@.service(5) zu Details über Kapseln.

    Hinzugefügt in Version 256.

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

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

--legend=LOGISCH
    Aktiviert oder deaktiviert die Ausgabe der Legende, d.h. der Spaltenüberschriften und der Fußzeile mit Hinweisen. Standardmäßig wird die Legende ausgegeben, außer dies wurde mit --quiet oder ähnlichem deaktiviert.

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

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

EXIT-STATUS

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

systemctl verwendet die durch LSB definierten Rückgabewerte, wie sie in LSB 3.0.0[3] definiert sind.

Tabelle 5. LSB-Rückgabe-Codes
Wert | Beschreibung in LSB | Verwendung in Systemd
0 | "Programm läuft oder Dienst ist OK" | Unit ist aktiv
1 | "Programm ist tot und /var/run-PID-Datei existiert" | Unit ist nicht fehlgeschlagen (von is-failed verwandt)
2 | "Programm ist tot und /var/lock-Sperrdatei existiert" | nicht verwandt
3 | "Programm läuft nicht" | Unit ist nicht aktiv
4 | "Programm- oder Dienstezustand unbekannt" | keine solche Unit

Die Abbildung der LSB-Dienstezustände auf Systemd-Unit-Zustände ist nicht perfekt. Daher ist es besser, sich nicht auf diese Rückgabewerte zu verlassen, sondern stattdessen nach bestimmten Unit-Zuständen und Unterzuständen zu schauen.

UMGEBUNGSVARIABLEN

$SYSTEMD_EDITOR
    Der bei der Bearbeitung von Units zu verwendende Editor: setzt $EDITOR und $VISUAL außer Kraft. Falls weder $SYSTEMD_EDITOR, $EDITOR noch $VISUAL vorhanden sind oder falls es auf eine leere Zeichenkette gesetzt ist oder falls seine Ausführung fehlschlug, wird Systemctl versuchen, gut bekannte Editoren in dieser Reihenfolge auszuführen: editor(1), nano(1), vim(1), vi(1).

    Hinzugefügt in Version 218.

$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_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_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 [4]). 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.

SIEHE AUCH

systemd(1), journalctl(1), loginctl(1), machinectl(1), systemd.unit(5), systemd.resource-control(5), systemd.special(7), wall(1), systemd.preset(5), systemd.generator(7), glob(7)

ANMERKUNGEN

1.  UAPI.1-Systemstartladerspezifikation
    https://uapi-group.org/specifications/specs/boot_loader_specification

2.  UAPI.2-Spezifikation für auffindbare Partitionen
    https://uapi-group.org/specifications/specs/discoverable_partitions_specification

3.  LSB 3.0.0
    http://refspecs.linuxbase.org/LSB_3.0.0/LSB-PDA/LSB-PDA/iniscrptact.html

4.  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.