.\" -*- coding: UTF-8 -*- '\" t .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SYSTEMD\&.UNIT 5 "" "systemd 241" systemd.unit .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH BEZEICHNUNG systemd.unit \- Unit\-Konfiguration .SH ÜBERSICHT .PP \fIDienst\fP\&.service, \fISocket\fP\&.socket, \fIGerät\fP\&.device, \fIEinhängung\fP\&.mount, \fIautomatische_Einhängung\fP\&.automount, \fIAuslagerung\fP\&.swap, \fIZiel\fP\&.target, \fIPfad\fP\&.path, \fIZeitgeber\fP\&.timer, \fIScheibe\fP\&.slice, \fIBereich\fP\&.scope .SS System\-Unit\-Suchpfad .PP .nf /etc/systemd/system\&.control/* /run/systemd/system\&.control/* /run/systemd/transient/* /run/systemd/generator\&.early/* /etc/systemd/system/* /etc/systemd/systemd\&.attached/* /run/systemd/system/* /run/systemd/systemd\&.attached/* /run/systemd/generator/* … /lib/systemd/system/* /run/systemd/generator\&.late/* .fi .SS Benutzer\-Unit\-Suchpfad .PP .nf ~/\&.config/systemd/user\&.control/* $XDG_RUNTIME_DIR/systemd/user\&.control/* $XDG_RUNTIME_DIR/systemd/transient/* $XDG_RUNTIME_DIR/systemd/generator\&.early/* ~/\&.config/systemd/user/* /etc/systemd/user/* $XDG_RUNTIME_DIR/systemd/user/* /run/systemd/user/* $XDG_RUNTIME_DIR/systemd/generator/* ~/\&.local/share/systemd/user/* … /usr/lib/systemd/user/* $XDG_RUNTIME_DIR/systemd/generator\&.late/* .fi .SH BESCHREIBUNG .PP Eine Unit\-Konfigurationsdatei ist eine reine Textdatei im Ini\-Format, die Informationen über einen Dienst, ein Socket, ein Gerät, einen Einhängepunkt, einen automatischen Einhängepunkt, eine Auslagerungsdatei oder \-partition, ein Startziel, einen überwachten Dateipfad, einen von \fBsystemd\fP(1) gesteuerten und überwachten Zeitgeber, eine Ressourcenverwaltungsscheibe oder eine Gruppe von extern erstellten Prozessenkodiert\&. Siehe \fBsystemd.syntax\fP(5) für eine allgemeine Beschreibung der Syntax\&. .PP Diese Handbuchseite führt die gemeinsamen Konfigurationsoptionen aller Unit\-Typen auf\&. Diese Optionen müssen in den Abschnitten [Unit] oder [Install] der Unit\-Dateien konfiguriert werden\&. .PP Zusätzlich zu den hier beschriebenen generischen Abschnitten [Unit] und [Install] kann jede Unit einen typspezifischen Abschnitt haben, z\&.B\&. [Service] für eine Dienste\-Unit\&. Siehe die respektiven Handbuchseiten für weitere Informationen: \fBsystemd.service\fP(5), \fBsystemd.socket\fP(5), \fBsystemd.device\fP(5), \fBsystemd.mount\fP(5), \fBsystemd.automount\fP(5), \fBsystemd.swap\fP(5), \fBsystemd.target\fP(5), \fBsystemd.path\fP(5), \fBsystemd.timer\fP(5), \fBsystemd.slice\fP(5), \fBsystemd.scope\fP(5)\&. .PP Unit\-Dateien werden von einer Reihe von Pfaden, die während der Compilierung bestimmt werden, geladen\&. Dies wird im nächsten Abschnitt beschrieben\&. .PP Unit\-Dateien können durch einen einzelnen Parameter, genannt »Instanzenname«, parametrisiert werden\&. Die Unit wird dann, basierend auf einer »Vorlagendatei«, die als Definition mehrerer Dienste oder anderer Units dient, konstruiert\&. Eine Vorlagendatei muss ein einzelnes »@« am Ende des Namens haben (direkt vor der Typendung)\&. Der Name der kompletten Unit wird durch Einfügung des Instanzennamens zwischen dem @ und der Unit\-Typendung gebildet\&. In der Unit\-Datei selbst kann auf den Instanzenparameter mittels »%i« und anderen Kennzeichnern Bezug genommen werden, siehe unten\&. .PP Unit\-Dateien dürfen zusätzliche zu den hier aufgeführten Optionen enthalten\&. Falls Systemd auf eine unbekannte Option stößt, wird es eine Warnprotokollnachricht schreiben, aber mit dem Laden der Unit fortfahren\&. Falls vor einer Option oder einem Abschnittnamen ein \fBX\-\fP steht, wird diese(r) von Systemd komplett ignoriert\&. Optionen innerhalb eines ignorierten Abschnittes benötigen die vorangestellte Kennung nicht\&. Anwendungen können dies dazu verwenden, zusätzliche Informationen in den Unit\-Dateien aufzunehmen\&. .PP Aliase (alternative Namen) können für Units angelegt werden, indem ein Symlink vom neuen Namen auf den alten Namen in einem der Unit\-Suchpfade angelegt wird\& Beispielsweise hat systemd\-networkd\&.service den Alias dbus\-org\&.freedesktop\&.network1\&.service, der während der Installation als Symlink /lib/systemd/system/dbus\-org\&.freedesktop\&.network1\&.service erstellt wurde\&. Zuätzlich können Unit\-Dateien Aliase mittels der Anweisung \fIAlias=\fP im Abschnitt [Install] festlegen\&. Diese Aliase sind nur wirksam, wenn die Unit aktiviert ist, dann werden Symlinks für diese Namen erstellt und wieder entfernt, wenn die Unit deaktiviert wird\&. Beispielsweise legt reboot\&.target \fIAlias=ctrl\-alt\-del\&.target\fP fest, daher wird sie aufgerufen, wenn sie aktiviert ist und STRG\-ALT+ENTF gedrückt wird\&. Aliasnamen können in Befehlen wie \fBenable\fP, \fBdisable\fP, \fBstart\fP, \fBstop\fP, \fBstatus\fP, … und in Unit\-Abhängigkeitsanweisungen \fIWants=\fP, \fIRequires=\fP, \fIBefore=\fP, \fIAfter=\fP mit der Einschränkung verwandt werden, dass die durch \fIAlias=\fP festgelegten Aliase nur wirksam sind, wenn die Unit aktiviert ist\&. Aliase können nicht mit dem Befehl \fBpreset\fP verwandt werden\&. .PP Das Verzeichnis foo\&.service\&.wants/ kann zusammen mit der Unit\-Datei foo\&.service existieren\&. Alle Unit\-Dateien, die von so einem Verzeichnis gesymlinkt sind, werden implizit als Abhängigkeiten vom Typ \fIWants=\fP für die Unit hinzugefügt\&. Dies ist nützlich, um Units in den Start von anderen Units einzuhängen, ohne ihre Unit\-Dateien zu verändern\&. Für Details über die Semantik von \fIWants=\fP siehe unten\&. Die bevorzugte Art, Symlinks in den Verzeichnissen \&.wants/ einer Unit\-Datei zu erstellen, ist über den Befehl \fBenable\fP des Werkzeugs \fBsystemctl\fP(1), der Informationen vom Abschnitt [Install] von Unit\-Dateis liest (siehe unten)\&. Eine ähnliche Funktionalität existiert auch für Abhängigkeiten vom Typ \fIRequires=\fP, die Verzeichnisendung ist in diesem Fall \&.requires/\&. .PP Zusammen mit einer Unit\-Datei foo\&.service kann ein »Ergänzungs«\-Verzeichnis foo\&.service\&.d/ existieren\&. Alle Dateien mit der Endung »\&.conf« aus diesem Verzeichnis werden, nachdem die Unit\-Datei selbst ausgewertet wurde, ausgewertet\&. Dies ist nützlich, um die Konfigurationseinstellungen für eine Unit zu verändern oder zu ergänzen, ohne die Unit\-Dateien selbst verändern zu müssen\&. Ergänzungsdateien müssen geeignete Abschnittskopfzeilen enthalten\&. Für instanziierte Units wird diese Logik zuerst nach dem Instanzen\-Unterverzeichnis »\&.d/« (z\&.B\&. »foo@bar\&.service\&.d/«) schauen und dessen »\&.conf«\-Dateien lesen, gefolgt von dem Vorlagenunterverzeichnis »\&.d/« (z\&.B\&. »foo@\&.service\&.d/«) und den »\&.conf«\-Dateien dort\&. Für Unit\-Namen, die desweiteren Gedankenstriche (»\-«) enthalten, wird die Menge der Verzeichnisse, die durch Abschneiden des Unit\-Namens nach allen Gedankenstrichen entsteht, auch durchsucht\&. Insbesondere wird für einen Unit\-Namen foo\-bar\-baz\&.service\&.d/ sowohl foo\-bar\-\&.service\&.d/ als auch foo\-\&.service\&.d/ durchsucht\&. Dies ist nützlich, um gemeinsame Reinlegungen für eine Gruppe von zusammengehörigen Units zu definieren, deren Namen mit einem gemeinsamen Anfang beginnen\&. Dieses Schema ist insbesondere für Einhänge\-, Automount\- und Scheiben\-Units, deren systematische Benennungsstruktur rund um Gedankenstriche als Komponententrenner aufgebaut ist, nützlich\&. Beachten Sie, dass gleichbenannte Ergänzungsdateien weiter unten in der Anfangshierarchie solche weiter oben außer Kraft setzen, d\&.h\&. foo\-bar\-\&.service\&.d/10\-override\&.conf setzt foo\-\&.service\&.d/10\-override\&.conf außer Kraft\&. .PP Zusätzlich zu /etc/systemd/system können Ergänzungs\-»\&.d/«\-Verzeichnisse in die Verzeichnisse /lib/systemd/system oder /run/systemd/system abgelegt werden\&. Ergänzungsdateien in /etc haben Vorrang vor denen in /run, die wiederum Vorrang vor denen in /lib haben\&. Ergänzungsdateien unter all diesen Verzeichnissen haben Vorrang vor der Haupt\-Netdev\-Datei, wo auch immer sich diese befindet\&. Mehrere Ergänzungsdateien mit verschiedenen Namen werden in lexikographischer Reihenfolge angewandt, unabhängig von dem Verzeichnis, in dem sie sich befinden\&. .PP Beachten Sie, dass Systemd zwar ein flexibles Abhängigkeitssystem zwischen Units bereitstellt, es aber empfohlen wird, diese Funktionalität nur sparsam zu verwenden und stattdessen auf Techniken wie Bus\-basierte oder Socket\-basierte Aktivierung zu setzen, wodurch Abhängigkeiten implizit werden und damit sowohl ein einfacheres als auch flexibleres System entsteht\&. .PP Wie oben erwähnt können Units von Vorlagendateien instanziiert werden\&. Dies erlaubt die Erstellung mehrere Units aus einer einzelnen Konfigurationsdatei\&. Falls Systemd nach einer Unit\-Konfigurationsdatei schaut, wird es zuerst nach dem wörtlichen Dateinamen in dem Dateisystem suchen\&. Falls das zu keinem Erfolg führt und der Unit\-Name das Zeichen »@« enthält, wird Systemd nach eine Unit\-Vorlage suchen, die auch den gleichen Namen hat, aber mit einer entfernten Instanzzeichenkette (d\&.h\&. der Teil zwischen dem »@«\-Zeichen und der Endung entfernt)\&. Beispiel: Falls ein Dienst getty@tty3\&.service angefragt wird und keine Datei mit diesem Namen gefunden wird, dann wird Systemd nach getty@\&.service suchen und einen Dienst aus dieser Konfigurationsdatei instanziieren, falls sie gefunden wurde\&. .PP Um sich innerhalb der Konfigurationsdatei auf die Instanziierungszeichenkette zu beziehen, können Sie den speziellen Kennzeichner »%i« in vielen Konfigurationsoptionen verwenden\&. Siehe unten für Details\&. .PP Falls eine Unit\-Datei leer ist (d\&.h\&. die Größe 0 hat) oder auf /dev/null gesymlinkt ist, wird seine Konfiguration nicht geladen und sie erscheint mit einem Ladezustand »masked« und kann nicht aktiviert werden\&. Verwenden Sie dies als wirksame Methode, um eine Unit komplett zu deaktivieren und es somit unmöglich zu machen, sie sogar manuell zu starten\&. .PP Das Unit\-Dateiformat wird durch die \m[blue]\fBSchnittstellenstabilitätszusage\fP\m[]\&\s-2\u[1]\d\s+2 abgedeckt\&. .SH "ZEICHENKETTENMASKIERUNG FÜR DIE AUFNAHME IN UNIT\-NAMEN" .PP Manchmal ist es nützlich, eine beliebige Zeichenkette in Unit\-Namen umzuwandeln\&. Um dies zu unterstützen, wird eine Zeichenkettenmaskierungsmethode verwandt, um Zeichenketten, die beliebige Byte\-Werte (außer NUL) enthalten, in gültige Namen und ihren begrenzten Zeichensatz umzuwandeln\&. Ein häufiger Spezialfall sind Unit\-Namen, die Pfade zu Objekten in der Dateisystemhierarchie wiederspiegeln\&. Beispiel: eine Geräte\-Unit dev\-sda\&.device bezieht sich auf ein Gerät mit dem Geräteknoten /dev/sda in dem Dateisystem\&. .PP Der Maskieralgorithmus funktioniert wie folgt: in einer gegebenen Zeichenkette wird jedes »/«\-Zeichen durch »\-« und alle anderen Zeichen außerhalb der ASCII alphanumerischen oder »_« werden durch ihr C\-artige »\ex2d«\-Maskierung ersetzt\&. Wenn »\&.« als erstes Zeichen in der maskierten Zeichenkette auftauchen würde, wird es zusätzlich mit seiner C\-artigen Maskierung ersetzt\&. .PP Wenn die Eingabe als absoluter Systempfad geeignet ist, wird dieser Algorithmus leicht erweitert: der Pfad zum Wurzelverzeichnis »/« wird als einzelner Gedankenstrich »\-« kodiert\&. Zusätzlich werden alle führenden, abschließenden oder doppelten »/« Zeichen vor der Umwandlung aus der Zeichenkette entfernt\&. Beispiel: /foo//bar/baz/ wird »foo\-bar\-baz«\&. .PP Diese Maskierung ist komplett umkehrbar, solange bekannt ist, ob die maskierte Zeichenkette ein Pfad war (die demaskierten Ergebnisse unterscheiden sich für Pfad\- und Nichtpfadzeichenketten)\&. Verwenden Sie \fBsystemd\-escape \-\-path\fP, um Pfade zu maskieren und andernfalls \fBsystemd\-escape\fP ohne \fB\-\-path\fP\&. .SH "AUTOMATISCHE ABHÄNGIGKEITEN" .SS "Implizite Abhängigkeiten" .PP Eine Reihe von Unit\-Abhängigkeiten werden implizit aufgebaut, abhängig vom Unit\-Typ und der Unit\-Konfiguration\&. Diese impliziten Abhängigkeiten können die Unit\-Konfiguration erleichtern\&. Bitte lesen Sie den Abschnitt »Implizite Abhängigkeiten« in der Handbuchseite des jeweiligen Unit\-Typs\&. .PP Beispielsweise erlangen Dienste\-Units mit \fIType=dbus\fP automatisch Abhängigkeiten vom Typ \fIRequires=\fP und \fIAfter=\fP von dbus\&.socket\&. Siehe \fBsystemd.service\fP(5) für Details\&. .SS Standardabhängigkeiten .PP Standardabhängigkeiten sind ähnlich impliziten Abhängigkeiten, können aber durch Setzen von \fIDefaultDependencies=\fP auf \fIyes\fP (die Vorgabe) und \fIno\fP an\- und abgeschaltet werden, während implizite Abhängigkeiten immer wirksam sind\&. Siehe Abschnitt »Standard\-Abhängigkeiten« in den jeweiligen Handbuchseiten für den Effekt der Aktivierung von \fIDefaultDependencies=\fP in jedem Unit\-Typ\&. .PP Beispielsweise werden Ziel\-Units alle konfigurierten Abhängigkeiten des Typs \fIWants=\fP oder \fIRequires=\fP mit Abhängigkeiten vom Typ \fIAfter=\fP ergänzen, außer \fIDefaultDependencies=no\fP ist in den festgelegten Units gesetzt\&. Siehe \fBsystemd.target\fP(5) für Details\&. Beachten Sie, dass dieses Verhalten durch Setzen von \fIDefaultDependencies=no\fP abgeschaltet werden kann\&. .SH UNIT\-DATEI\-LADEPFAD .PP Unit\-Dateien werden von einer Reihe von Pfaden geladen, die während der Kompilierung bestimmt werden, wie dies in den zwei Tabellen unten beschrieben ist\&. Unit\-Dateien, die in früher aufgeführten Verzeichnissen gefunden werden setzen Dateien mit dem gleichen Namen in Verzeichnissen, die weiter unten in der Liste aufgeführt sind, außer Kraft\&. .PP Wenn die Variable \fI$SYSTEMD_UNIT_PATH\fP gesetzt ist, setzt der Inhalt dieser Variable den Unit\-Ladepfad außer Kraft\&. Falls \fI$SYSTEMD_UNIT_PATH\fP mit einer leeren Komponente (»:«) endet, wird der normale Unit\-Ladepfad an den Inhalt der Variablen angehängt\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&1.\ \& Ladepfad beim Betrieb im Systemmodus (\-\-system)\&.\fP .TS allbox tab(:); lB lB. T{ Pfad T}:T{ Beschreibung T} .T& l l l ^ l l l l l l l l l l l l l ^ l l. T{ /etc/systemd/system\&.control T}:T{ Mittels Dbus\-API erstellte dauerhafte und flüchtige Konfiguration T} T{ /run/systemd/system\&.control T}: T{ /run/systemd/transient T}:T{ Dynamische Konfiguration für flüchtige Units T} T{ /run/systemd/generator\&.early T}:T{ Erstellte Units mit hoher Priorität (siehe \fIearly\-dir\fP in \fBsystemd.generator\fP(7)) T} T{ /etc/systemd/system T}:T{ Lokale Konfiguration T} T{ /run/systemd/system T}:T{ Laufzeit Units T} T{ /run/systemd/generator T}:T{ Erstellte Units mit mittlerer Priorität (siehe \fInormal\-dir\fP in \fBsystemd.generator\fP(7)) T} T{ /usr/local/lib/systemd/system T}:T{ Units von installierten Paketen T} T{ /lib/systemd/system T}: T{ /run/systemd/generator\&.late T}:T{ Erstellte Units mit niedriger Priorität (siehe \fIlate\-dir\fP in \fBsystemd.generator\fP(7)) T} .TE .sp 1 .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&2.\ \& Ladepfad bei der Ausführung im Benutzermodus (\-\-user)\&.\fP .TS allbox tab(:); lB lB. T{ Pfad T}:T{ Beschreibung T} .T& l l l ^ l l l l l l l l l l l l l l l l l l l l l ^ l l. T{ $XDG_CONFIG_HOME/systemd/user\&.control oder ~/\&.config/systemd/user\&.control T}:T{ Dauerhafte und flüchtige Konfiguration, die mittels des DBus\-APIs erstellt wird ((\fI$XDG_CONFIG_HOME\fP wird verwandt, falls gesetzt, andernfalls ~/\&.config) T} T{ $XDG_RUNTIME_DIR/systemd/user\&.control T}: T{ /run/systemd/transient T}:T{ Dynamische Konfiguration für flüchtige Units T} T{ /run/systemd/generator\&.early T}:T{ Erstellte Units mit hoher Priorität (siehe \fIearly\-dir\fP in \fBsystemd.generator\fP(7)) T} T{ $XDG_CONFIG_HOME/systemd/user oder $HOME/\&.config/systemd/user T}:T{ Benutzerkonfiguration (\fI$XDG_CONFIG_HOME\fP wird verwandt, falls gesetzt, andernfalls ~/\&.config) T} T{ /etc/systemd/user T}:T{ Lokale Konfiguration T} T{ $XDG_RUNTIME_DIR/systemd/user T}:T{ Laufzeit\-Units (nur verwandt, falls $XDG_RUNTIME_DIR gesetzt ist) T} T{ /run/systemd/user T}:T{ Laufzeit Units T} T{ $XDG_RUNTIME_DIR/systemd/generator T}:T{ Erstellte Units mit mittlerer Priorität (siehe \fInormal\-dir\fP in \fBsystemd.generator\fP(7)) T} T{ $XDG_DATA_HOME/systemd/user oder $HOME/\&.local/share/systemd/user T}:T{ Units von Paketen, die im Home\-Verzeichnis installiert wurden (\fI$XDG_DATA_HOME\fP wird verwandt, falls gesetzt, andernfalls ~/\&.local/share) T} T{ $dir/systemd/user für jedes \fI$dir\fP in \fI$XDG_DATA_DIRS\fP T}:T{ Zusätzliche Orte für installierte Benutzer\-Units, einen für jeden Eintrag in \fI$XDG_DATA_DIRS\fP T} T{ /usr/local/lib/systemd/user T}:T{ Units für Pakete, die systemweit installiert wurden T} T{ /usr/lib/systemd/user T}: T{ $XDG_RUNTIME_DIR/systemd/generator\&.late T}:T{ Erstellte Units mit niedriger Priorität (siehe \fIlate\-dir\fP in \fBsystemd.generator\fP(7)) T} .TE .sp 1 .PP Die Gruppe der Ladepfade für die Benutzerverwalterinstanzen kann mittels verschiedener Umgebungsvariablen ergänzt oder geändert werden\&. Und Umgebungsvariablen können wiederum mittels Umgebungsgeneratoren gesetzt werden, siehe \fBsystemd.environment\-generator\fP(7)\&. Insbesondere \fI$XDG_DATA_HOME\fP und \fI$XDG_DATA_DIRS\fP können leicht mittels \fBsystemd\-environment\-d\-generator\fP(8) gesetzt werden\&. Daher sind die hier aufgeführten Verzeichnisse nur die Vorgaben\&. Um die tatsächlich verwandte Liste, basierend auf den Compiler\-Optionen und der aktuellen Umgebung, zu sehen, verwenden Sie .sp .if n \{\ .RS 4 .\} .nf systemd\-analyze \-\-user unit\-paths .fi .if n \{\ .RE .\} .PP Desweiteren können zusätzliche Units aus Verzeichnissen, die nicht im Unit\-Ladepfad sind, in Systemd hereingeladen (»gelinkt«) werden\&. Siehe den Befehl \fBlink\fP für \fBsystemctl\fP(1)\&. .SH UNIT\-MÜLLABFUHR .PP Der System\- und Diensteverwalter lädt die Konfiguration einer Unit automatisch, wenn die Unit das erste Mal referenziert wird\&. Er wird die Unit\-Konfiguration und den Zustand wieder entladen, wenn die Unit nicht mehr benötigt wird (»Müllabfuhr«)\&. Eine Unit kann über eine Reihe von Mechanismen referenziert werden: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} Eine andere geladene Unit referenziert sie mit einer Abhängigkeit wie \fIAfter=\fP, \fIWants=\fP, … .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} Die Unit startet, läuft, startet sich neu oder stoppt derzeit\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} Die Unit ist derzeit im Zustand \fBfailed\fP\&. (Siehe aber unten\&.) .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} Ein Auftrag für die Unit ist anhängig\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} Die Unit ist durch ein aktives IPC\-Client\-Programm verankert\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} Die Unit ist eine besondere »ewige« Unit, die immer aktiv und geladen ist\&. Beispiele für ewige Units sind die Wurzeleinhänge\-Unit \-\&.mount und die Bereichs\-Unit init\&.scope, in der der Diensteverwalter selbst lebt\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 7.\h'+01'\c .\} .el \{\ .sp -1 .IP " 7." 4.2 .\} Die Unit hat ihr zugeordnete laufende Prozesse\&. .RE .PP Die Müllabfuhrlogik kann mit der Option \fICollectMode=\fP verändert werden\&. Diese Option erlaubt die Konfiguration, ob automatisches Entladen von Units, die im Zustand \fBfailed\fP sind, erlaubt ist, siehe unten\&. .PP Beachten Sie, dass beim Entladen der Konfiguration und des Zustandes einer Unit alle Ausführungsergebnisse, wie Exit\-Codes, Exit\-Signale und Resourcenverbrauch\- und andere Statistiken, verloren gehen, außer für den Anteil, der im Protokolluntersystem gespeichert ist\&. .PP Verwenden Sie \fBsystemctl daemon\-reload\fP oder einen äquivalenten Befehl, um die Unit\-Konfiguration neu zu laden, während die Unit bereits geladen ist\&. In diesem Fall werden alle Konfigurationseinstellungen rausgeschoben und durch die neue Konfiguration ersetzt (die allerdings nicht sofort in Kraft sein muss), allerdings wird sämtlicher Laufzeitzustand gespeichert/wiederhergestellt\&. .SH [UNIT]\-ABSCHNITT\-OPTIONEN .PP Die Unit\-Datei kann einen Abschnitt [Unit] enthalten, der generische Informationen über die Unit transportiert, der nicht vom Unit\-Typ abhängt: .PP \fIDescription=\fP .RS 4 Ein menschenlesbarer Name für die Unit\&. Dieser wird von \fBsystemd\fP (und anderen Benutzeroberflächen) als Bezeichnung für die Unit verwandt, daher sollte diese Zeichenkette die Unit identifzieren, statt sie zu beschreiben, trotz des Namens\&. »Apache2 Web Server« ist ein gutes Beispiel\&. Schlechte Beispiele sind »leichtgewichtiger Hochleistungs\-HTTP\-Server« (zu generisch) oder »Apache2« (zu spezifisch und für Leute, die Apache nicht kennen, bedeutungslos)\&. \fBsystemd\fP wird dies als Substantiv in Statusnachrichten (»Starting \fIdescription\fP\&.\&.\&.«, »Started \fIdescription\fP\&.«, »Reached target \fIdescription\fP\&.«, »Failed to start \fIdescription\fP\&.«) verwenden, daher sollte er groß geschrieben werden und kein vollständiger Satz oder eine Phrase mit einem kontinuierlichen Verb sein\&. Schlechte Beispiele sind auch »exiting the container« oder »updating the database once per day\&.«\&. .RE .PP \fIDocumentation=\fP .RS 4 Eine Leeraum\-getrennte Liste von URIs, die Dokumentation für diese Unit oder seine Konfiguration referenzieren\&. Es werden nur URIs von den Typen »http://«, »https://«, »file:«, »info:«, »man:« akzeptiert\&. Für weitere Informationen über die Syntax dieser URIs siehe \fBuri\fP(7)\&. Die URIs sollten in der Reihenfolge der Bedeutung aufgeführt werden, beginnend mit der relevantesten\&. Es ist eine gute Idee, zuerst Dokumentation zu referenzieren, die erklärt, was der Zweck der Unit ist, gefolgt von solcher über seine Konfiguration, gefolgt von anderer relevanter Dokumentation\&. Diese Option kann mehr als einmal angegeben werden, in diesem Fall werden die festgelegten Listen von URIs zusammengeführt\&. Falls dieser Option die leere Zeichenkette zugewiesen wird, wird die Liste zurückgesetzt und alle vorherigen Zuweisungen werden keinen Effekt haben\&. .RE .PP \fIRequires=\fP .RS 4 Konfiguriert Anforderungsabhängigkeiten auf andere Units\&. Falls diese Unit aktiviert wird, werden die hier aufgeführten Units auch aktiviert\&. Falls die Aktivierung einer der anderen Units fehlschlägt und eine Anordnungsabhängigkeit \fIAfter=\fP auf diese fehlgeschlagene Units gesetzt ist, wird diese Unit nicht gestartet\&. Außerdem wird diese Unit, mit oder ohne Angabe von \fIAfter=\fP, gestoppt, falls eine der anderen Units explizit gestoppt wird\&. Diese Option kann mehr als einmal angegeben oder mehrere, Leerzeichen\-getrennte Units können in einer Option festgelegt werden; in diesem Fall werden für alle aufgeführten Namen Anforderungsabhängigkeiten erstellt\&. Beachten Sie, dass Anforderungsabhängigkeiten nicht die Reihenfolge, in der Dienste gestartet oder gestoppt werden, beeinflussen\&. Dies muss unabhängig mit den Optionen \fIAfter=\fP oder \fIBefore=\fP konfiguriert werden\&. Falls eine Unit foo\&.service eine Unit bar\&.service wie mit \fIRequires=\fP konfiguriert benötigt und keine Ordnung mit \fIAfter=\fP oder \fIBefore=\fP konfiguriert ist, werden beide Units simultan und ohne Verzögerung zwischen ihnen gestartet, falls foo\&.service aktiviert wird\&. Oft ist es eine bessere Wahl, \fIWants=\fP statt \fIRequires=\fP zu verwenden, um ein System zu erreichen, das robuster ist, wenn Dienste fehlschlagen\&. .sp Beachten Sie, dass dieser Abhängigkeitstyp nicht impliziert, dass andere Units immer im aktiven Zustand sein müssen, wenn diese Unit läuft\&. Insbesondere: Fehlschlagende Bedingungsüberprüfungen (wie \fIConditionPathExists=\fP, \fIConditionPathIsSymbolicLink=\fP, … \(em siehe unten) führen nicht dazu, dass der Start einer Unit mit einer \fIRequires=\fP\-Abhängigkeit darauf fehlschlägt\&. Auch können sich einige Unit\-Typen von selbst deaktivieren (beispielsweise kann sich ein Diensteprozess entscheiden, sich sauber zu beenden, oder ein Gerät könnten von einem Benutzer ausgesteckt werden), was nicht an die Units mit einer \fIRequires=\fP\-Abhängigkeit übertragen wird\&. Verwenden Sie den Abhängigkeitstyp \fIBindsTo=\fP zusammen mit \fIAfter=\fP, um sicherzustellen, dass sich eine Unit niemals im aktiven Zustand befindet, ohne dass eine andere Unit sich auch in einem aktiven Zustand befindet (siehe unten)\&. .sp Beachten Sie, dass Abhängigkeiten dieser Art auch außerhalb der Unit\-Konfigurationsdatei konfiguriert werden können, indem ein Symlink auf ein die Unit\-Datei begleitendes \&.requires/\-Verzeichnis hinzugefügt wird\&. Siehe oben für Details\&. .RE .PP \fIRequisite=\fP .RS 4 Ähnlich zu \fIRequires=\fP\&. Falls die hier aufgeführten Units noch nicht gestartet wurden, werden sie nicht gestartet und der Start dieser Unit wird sofort fehlschlagen\&. \fIRequisite=\fP impliziert keine Ordnungsabhängigkeit, selbst falls beide Units in der gleichen Transaktion gestartet werden\&. Daher sollte diese Einstellung normalerweise mit \fIAfter=\fP kombiniert werden, um sicherzustellen, dass diese Unit nicht vor der anderen Unit gestartet wird\&. .sp Wenn \fIRequisite=b\&.service\fP auf a\&.service benutzt wird, wird diese Abhängigkeit als \fIRequisiteOf=a\&.service\fP in der Eigenschaftsliste von b\&.service angezeigt\&. \fIRequisiteOf=\fP\-Abhängigkeiten können nicht direkt festgelegt werden\&. .RE .PP \fIWants=\fP .RS 4 Eine schwächere Version von \fIRequires=\fP\&. In dieser Option aufgeführte Units werden gestartet, wenn die konfigurierende Unit es wird\&. Falls allerdings die aufgeführte Unit nicht startet oder der Transaktion nicht hinzugefügt werden kann, hat dies keine Auswirkungen auf die Gültigkeit der Transaktion als ganzes\&. Dies ist die empfohlene Art, das Starten einer Unit beim Starten einer anderen Unit einzuhängen\&. .sp Beachten Sie, dass Abhängigkeiten dieser Art auch außerhalb der Unit\-Konfigurationsdatei konfiguriert werden können, indem ein Symlink auf ein die Unit\-Datei begleitendes \&.wants/\-Verzeichnis hinzugefügt wird\&. Siehe oben für Details\&. .RE .PP \fIBindsTo=\fP .RS 4 Konfiguriert Anforderungsabhängigkeiten, im Stil sehr ähnlich zu \fIRequires=\fP\&. Allerdings ist dieser Abhängigkeitstyp stärker: Zusätzlich zu dem Effekt von \fIRequires=\fP deklariert er, dass beim Stoppen der gebundenen Unit auch diese Unit gestoppt wird\&. Das bedeutet, dass eine Unit, die an eine andere Unit gebunden ist, die plötzlich in einen inaktiven Zustand eintritt, auch gestoppt wird\&. Units können plötzlich und unerwartet aus verschiedenen Gründen in inaktive Zustände eintreten: Der Hauptprozess einer Dienste\-Unit könnte sich aus eigenem Antrieb beenden, das zugrundeliegende Gerät einer Geräte\-Unit könnte ausgesteckt werden oder der Einhängepunkt einer Einhänge\-Unit könnte ohne Beteiligung des System\- und Diensteverwalters ausgehängt werden\&. .sp Bei der Verwendung in Verbindung mit \fIAfter=\fP auf die gleiche Unit ist das Verhalten von \fIBindsTo=\fP sogar noch stärker\&. In diesem Falle muss die angebundene Unit sogar in einem aktiven Zustand sein, damit diese Unit auch in einem aktiven Zustand ist\&. Dies bedeutet nicht nur, dass eine Unit, die an eine andere Unit angebunden ist, die plötzlich in einen inaktiven Zustand eintritt, sondern auch, die an eine andere Unit angebunden ist, die aufgrund einer fehlenden Bedingungsprüfung (wie \fIConditionPathExists=\fP, \fIConditionPathIsSymbolicLink=\fP, … \em siehe unten) übersprungen wird, gestopppt wird, sollte sie laufen\&. Daher ist es in vielen Fällen am besten, \fIBindsTo=\fP mit \fIAfter=\fP zu kombinieren\&. .sp Wenn \fIBindsTo=b\&.service\fP auf a\&.service benutzt wird, wird diese Abhängigkeit als \fIBoundBy=a\&.service\fP in der Eigenschaftsliste von b\&.service angezeigt\&. \fIBoundBy=\fP\-Abhängigkeiten können nicht direkt festgelegt werden\&. .RE .PP \fIPartOf=\fP .RS 4 Konfiguriert Abhängigkeiten ähnlich zu \fIRequires=\fP, aber begrenzt auf das Stoppen und Neustarten von Units\&. Wenn Systemd die hier aufgeführten Units stoppt oder neustartet, wird die Aktion zu dieser Unit weitergeleitet\&. Beachten Sie, dass dies eine Einwegeabhängigkeit ist \(em Änderungen an dieser Unit betreffen nicht die aufgeführten Units\&. .sp Wenn \fIPartOf=b\&.service\fP auf a\&.service benutzt wird, wird diese Abhängigkeit als \fIConsistsOf=a\&.service\fP in der Eigenschaftsliste von b\&.service angezeigt\&. \fIConsistsOf=\fP\-Abhängigkeiten können nicht direkt festgelegt werden\&. .RE .PP \fIConflicts=\fP .RS 4 Eine Leeraum\-getrennte Liste von Unit\-Namen\&. Konfiguriert negative Anforderungsabhängigkeiten\&. Falls eine Unit eine Einstellung \fIConflicts=\fP auf eine andere Unit hat, wird das Starten ersterer die letzere stoppen und umgekehrt\&. Beachten Sie, dass diese Einstellung unabhängig von und orthogonal zu den Ordnungsabhängigkeiten \fIAfter=\fP und \fIBefore=\fP ist\&. .sp Falls eine Unit A, die in Konflikt zu Unit B steht, gleichzeitig zum Starten wie B eingeplant ist, wird die Transaktion entweder fehlschlagen (falls beide benötigte Teile der Transaktion sind) oder so verändert, dass dies behoben wird (falls eine oder beide Aufträge ein nicht benötigter Teil der Transaktion sind)\&. In letzterem Fall wird der Auftrag, der nicht benötigt ist, entfernt, oder falls beide nicht benötigt werden, wird die den Konflikt auslösende Unit gestartet und die in Konflikt stehende gestoppt\&. .RE .PP \fIBefore=\fP, \fIAfter=\fP .RS 4 Diese zwei Einstellungen erwarten eine Leeraum\-getrennte Liste von Unit\-Namen\&. Sie konfigurieren Ordnungsabhängigkeiten zwischen Units\&. Falls eine Unit foo\&.service eine Einstellung \fBBefore=bar\&.service\fP enthält und beide Units gestartet werden, wird das Starten von bar\&.service verzögert, bis foo\&.service mit dem Starten abgeschlossen hat\&. Beachten Sie, dass diese Einstellung unabhängig von und orthogonal zu der mit \fIRequires=\fP, \fIWants=\fP oder \fIBindsTo=\fP konfigurierten Anforderungsabhängigkeit ist\&. Es ist ein häufiges Muster, einen Unit\-Namen sowohl in die Optionen \fIAfter=\fP als auch in \fIRequires=\fP aufzunehmen; in diesem Fall wird die aufgeführte Unit vor der Unit, die mit diesen Optionen konfiguriert ist, gestartet\&. Diese Option kann mehr als einmal festgelegt werden, dann werden Ordnungsabhängigkeiten für alle aufgeführten Namen erstellt\&. \fIAfter=\fP ist das Inverse von \fIBefore=\fP, d\&.h\&. während \fIAfter=\fP sicherstellt, dass die konfigurierte Unit gestartet wird, nachdem die aufgeführte Unit das Starten abgeschlossen hat, stellt \fIBefore=\fP das Gegenteil dar, dass die konfigurierte Unit vollständig gestartet ist, bevor die aufgeführte Unit gestartet wird\&. Beachten Sie, dass beim Herunterfahren von zwei Units, zwischen denen eine Ordunngsabhängigkeit besteht, das Inverse der Start\-Reihenfolge angewandt wird\&. Dies bedeutet, falls eine Unit mit \fIAfter=\fP auf eine andere Unit konfiguriert ist, wird die erstere vor letzterer gestoppt, falls beide heruntergefahren werden\&. Existiert zwischen zwei Units eine Ordnungsabhängigkeit und wird eine Unit gestoppt und die andere gestartet, dann wird das Herunterfahren vor dem Hochfahren einsortiert\&. Dabei spielt es in diesem Fall keine Rolle, ob die Ordnungsabhängigkeit \fIAfter=\fP oder \fIBefore=\fP ist\&. Es spielt auch keine Rolle, welcher der beiden Heruntergefahren wird, solange eine heruntergefahren und die andere gestartet wird\&. Das Herunterfahren wird in allen Fällen vor dem Starten geordnet\&. Falls zwischen zwei Units keine Ordnungsabhängigkeit besteht, dann werden sie gleichzeitig heruntergefahren und gestartet und es findet keine Ordnung statt\&. Es hängt vom Unit\-Typ ab, wann genau eine Unit das Starten abgeschlossen hat\&. Am wichtigsten ist, dass für Dienste\-Units das Starten für die Zwecke von \fIBefore=\fP/\fIAfter=\fP als abgeschlossen betrachtet wird, wenn alle ihre konfigurierten Startbefehle aufgerufen wurden und entweder fehlschlugen oder Erfolg berichteten\&. .RE .PP \fIOnFailure=\fP .RS 4 Eine Leeraum\-getrennte Liste einer oder mehrerer Units, die aktiviert werden, wenn diese Unit den Zustand »failed« einnimmt\&. Eine Dienste\-Unit, die \fIRestart=\fP verwendet, nimmt den fehlgeschlagenen Zustand nur an, nachdem die Startbegrenzung erreicht wurde\&. .RE .PP \fIPropagatesReloadTo=\fP, \fIReloadPropagatedFrom=\fP .RS 4 Eine Leeraum\-getrennte Liste einer oder mehrerer Units, bei denen Neuladeanforderungen an diese anderen Units fortgepflanzt werden bzw\&. Neuladeanforderungen von anderen Units an diese Unit fortgepflanzt werden\&. Erteilen einer Neuladeanforderunge an eine Unit, wird auch eine Neuladeanforderung an alle Units, an die die Neuladeanforderung mittles dieser zwei Einstellungen fortgepflanzt werden soll, erteilen\&. .RE .PP \fIJoinsNamespaceOf=\fP .RS 4 Für Units, die Prozesse starten (wie Dienste\-Units) werden hier eine oder mehrere andere Units aufgeführt, dessen Netzwerk\- oder temporärer Namensraum beigetreten werden soll\&. Dies gilt nur für Unit\-Typen, die die Anweisungen \fIPrivateNetwork=\fP und \fIPrivateTmp=\fP unterstützen (siehe \fBsystemd.exec\fP(5) für Details)\&. Falls eine Unit, die diese Einstellung hat, gestartet wird, werden deren Prozesse die gleichen /tmp\-, /var/tmp\- und Netzwerk\-Namensräume wie die aufgeführte gestartete Unit haben\&. Falls mehrere aufgeführte Units bereits gestartet sind, ist nicht definiert, wessen Namensraum beigetreten wird\&. Beachten Sie, dass diese Einstellung nur Wirkung zeigt, falls \fIPrivateNetwork=\fP und/oder \fIPrivateTmp=\fP für sowohl die Unit, die dem Namensraum beitritt, als auch die Unit, deren Namensraum beigetreten wird, aktiviert ist\&. .RE .PP \fIRequiresMountsFor=\fP .RS 4 Akzeptiert eine Leeraum\-getrennte Liste absoluter Pfade\&. Führt automatisch Abhängigkeiten vom Typ \fIRequires=\fP und \fIAfter=\fP für alle für den Zugriff auf den festgelegten Pfad benötigten Einhänge\-Units hinzu\&. .sp Mit \fBnoauto\fP markierte Einhängepunkte werden nicht durch local\-fs\&.target automatisch eingehängt, werden für den Zweck dieser Option aber weiterhin berücksichtigt, d\&.h\&. sie werden von dieser Unit hereingezogen\&. .RE .PP \fIOnFailureJobMode=\fP .RS 4 Akzeptiert einen Wert aus »fail«, »replace«, »replace\-irreversibly«, »isolate«, »flush«, »ignore\-dependencies«, »ignore\-requirements«\&. Standardmäßig »replace«\&. Legt fest, wie die in \fIOnFailure=\fP aufgeführten Units in die Warteschlange eingestellt werden\&. Siehe die Option \fB\-\-job\-mode=\fP von \fBsystemctl\fP(1) für Details über die möglichen Werte\&. Falls dies auf »isolate« gesetzt ist, darf in \fIOnFailure=\fP nur eine einzelne Unit aufgeführt werden\&. .RE .PP \fIIgnoreOnIsolate=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls \fBtrue\fP wird die Unit nicht gestoppt, wenn eine andere Unit isoliert wird\&. Standardmäßig \fBfalse\fP für Dienste\-, Ziel\-, Socket\-, Busname\-, Zeitgeber\- und Pfad\-Units und \fBtrue\fP für Scheiben\-, Bereichs\-, Geräte\-, Swap\-, Einhänge\- und Automount\-Units\&. .RE .PP \fIStopWhenUnneeded=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls \fBtrue\fP wird diese Unit gestoppt, wenn sie nicht mehr benutzt wird\&. Beachten Sie, dass Systemd standardmäßig Units nicht stoppt, außer sie stehen in Konflikt zu anderen Units oder der Benutzer bittet explizit um ihr Herunterfahren, um die auszuführende Arbeit zu minimieren\&. Falls diese Option gesetzt ist, wird eine Unit automatisch bereinigt, falls keine andere aktive Unit sie benötigt\&. Standardmäßig \fBfalse\fP\&. .RE .PP \fIRefuseManualStart=\fP, \fIRefuseManualStop=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls \fBtrue\fP kann diese Unit nur indirekt aktiviert oder deaktiviert werden\&. In diesem Fall werden direkte Start\- oder Beendigungs\-Anfragen des Benutzers zurückgewiesen, erfolgt das Starten oder Beenden allerdings als Abhängigkeit von einer anderen Unit, dann wird das Starten oder Beenden erfolgreich sein\&. Dies ist primär eine Sicherheitsfunktionalität, um sicherzustellen, dass der Benutzer nicht versehentlich Units aktiviert, die nicht für direkte Aktivierung gedacht sind und nicht versehentlich Units deaktiviert, die nicht zur Beendigung gedacht sind\&. Diese Option ist standardmäßig \fBfalse\fP\&. .RE .PP \fIAllowIsolate=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls \fBtrue\fP darf diese Unit mit dem Befehl \fBsystemctl isolate\fP verwandt werden\&. Andernfalls wird dies zurückgewiesen\&. Es ist wahrscheinlich eine gute Idee, dies außer für Ziel\-Units, die ähnlich wie Runlevel in SysV\-Init\-Systemen verwandt werden sollen, deaktiviert zu lassen, nur als Vorsichtsmaßnahme, um unbenutzbare Systemzustände zu vermeiden\&. Diese Option ist standardmäßig \fBfalse\fP\&. .RE .PP \fIDefaultDependencies=\fP .RS 4 Akzeptiert ein logisches Argument\&. Falls \fBtrue\fP (die Vorgabe) werden ein paar Standard\-Abhängigkeiten implizit für die Unit erstellt\&. Die tatsächlich erstellten Abhängigkeiten hängen vom Unit\-Typ ab\&. Für Dienste\-Units stellen diese Abhängigkeiten beispielsweise sicher, dass der Dienst erst gestartet wird, nachdem die grundlegende System\-Initialisierung abgeschlossen ist und dass er korrekt beim System\-Herunterfahren beendet wird\&. Siehe die jeweilige Handbuchseite für Details\&. Im Allgemeinen sollten nur Dienste, die im frühen Systemstart oder beim späten Herunterfahren beteiligt sind, diese Option auf \fBfalse\fP setzen\&. Es wird nachdrücklich empfohlen, diese Option für den Großteil der häufigen Units aktiviert zu lassen\&. Falls auf \fBfalse\fP gesetzt, deaktiviert diese Option nicht alle impliziten Abhängigkeiten, sondern nur nicht essenzielle\&. .RE .PP \fICollectMode=\fP .RS 4 Optimiert den Algorithmus der »Müllabfuhr« für diese Unit\&. Akzeptiert entweder \fBinactive\fP oder \fBinactive\-or\-failed\fP\&. Falls auf \fBinactive\fP gesetzt, wird die Unit entladen, falls sie im Zustand \fBinactive\fP ist und von keinen Clients, Aufträgen oder anderen Units referenziert wird; allerdings wird sie nicht entladen, wenn sie im Zustand \fBfailed\fP ist\&. Im Modus \fBfailed\fP werden fehlgeschlagene Units nicht entladen, bis der Benutzer \fBsystemctl reset\-failed\fP oder einen äquivalenten Befehl auf ihnen aufruft, um den Zustand \fBfailed\fP zurückzusetzen\&. Dieses Verhalten wird geändert, falls die Option auf \fBinactive\-or\-failed\fP gesetzt wird: in diesem Fall wird die Unit entladen, selbst falls die Unit im Zustand \fBfailed\fP ist und daher ist ein explizites Zurücksetzen des Zustands \fBfailed\fP nicht notwendig\&. Beachten Sie, dass Unit\-Ergebnisse (wie Exit\-Codes, Exit\-Signale, verbrauchte Ressourcen, …) sofort nach Abschluss der Units entsorgt werden, außer dem Anteil, der im Protokollieruntersystem gespeichert ist, falls diese Option verwandt wird\&. Standardmäßig \fBinactive\fP\&. .RE .PP \fIFailureAction=\fP, \fISuccessAction=\fP .RS 4 Konfiguriert die durchzuführende Aktion, wenn die Unit stoppt und in einen Fehlzustand oder inaktiven Zustand eintritt\&. Akzeptiert entweder \fBnone\fP, \fBreboot\fP, \fBreboot\-force\fP, \fBreboot\-immediate\fP, \fBpoweroff\fP, \fBpoweroff\-force\fP, \fBpoweroff\-immediate\fP, \fBexit\fP oder \fBexit\-force\fP\&. Im Systemmodus sind alle Optionen erlaubt\&. Im Benutzermodus sind nur \fBnone\fP, \fBexit\fP und \fBexit\-force\fP erlaubt\&. Beide Optionen sind standardmäßig \fBnone\fP\&. .sp Falls \fBnone\fP gesetzt ist, wird keine Aktion ausgelöst\&. \fBreboot\fP verursacht einen Neustart nach der normalen Herunterfahrprozedur (d\&.h\&. äquivalent zu \fBsystemctl reboot\fP)\&. \fBreboot\-force\fP führt zu einem erzwungenen Neustart, der alle Prozesse zwangsweise beenden wird, aber beim Neustart kein unsauberes Dateisystem erzeugen sollte (d\&.h\&. äquivalent zu \fBsystemctl reboot \-f\fP) und \fBreboot\-immediate\fP führt zu einer sofortigen Ausführung des Systemaufrufs \fBreboot\fP(2), was zu Datenverlust führen kann (d\&.h\&. äquivalent zu \fBsystemctl reboot \-ff\fP)\&. Ähnlich haben \fBpoweroff\fP, \fBpoweroff\-force\fP, \fBpoweroff\-immediate\fP die Wirkung des Herunterfahrens des Systems mit ähnlichen Semantiken\&. \fBexit\fP führt dazu, dass sich der Verwalter beendet, wobei er der normalen Herunterfahrprozedur folgt, und \fBexit\-force\fP führt dazu, dass er sich ohne Herunterfahren der Dienste beendet\&. Wenn \fBexit\fP oder \fBexit\-force\fP verwandt werden, wird standardmäßig der Exit\-Status des Hauptprozesses der Unit (falls dies zutrifft) vom Diensteverwalter zurückgeliefert\&. Dies kann allerdings mit \fIFailureActionExitStatus=\fP/\fISuccessActionExitStatus=\fP außer Kraft gesetzt werden, siehe unten\&. .RE .PP \fIFailureActionExitStatus=\fP, \fISuccessActionExitStatus=\fP .RS 4 Steuert den Exit\-Status, der an den Container\-Verwalter zurückgeleitet werden soll (im Falle von Systemdiensten) oder dem Diensteverwalter (im Falle eines Benutzerverwalters), wenn die \fIFailureAction=\fP/\fISuccessAction=\fP auf \fBexit\fP oder \fBexit\-force\fP gesetzt sind und die Aktion ausgelöst wird\&. Standardmäßig wird der Exit\-Status des Hauptprozesses der auslösenden Unit (falls dies zutrifft) weitergeleitet\&. Akzeptiert einen Wert im Bereich 0…255 oder die leere Zeichenkette, um das Standardverhalten zu erbitten\&. .RE .PP \fIJobTimeoutSec=\fP, \fIJobRunningTimeoutSec=\fP .RS 4 Wenn ein Auftrag für diese Unit in die Warteschlange eingereiht wird, kann eine Zeitüberschreitung \fIJobTimeoutSec=\fP konfiguriert werden\&. Ähnlich zu \fIJobRunningTimeoutSec=\fP beginnt er zu zählen, wenn der in die Warteschlange eingereihte Auftrag tatsächlich gestartet wird\&. Falls eine der Zeitbegrenzungen erreicht ist, wird der Auftrag abgebrochen, die Unit wird allerdings nicht ihren Zustand ändern oder sogar den Modus »failed« einnehmen\&. Dieser Wert beträgt standardmäßig »infinity« (Auftrags\-Zeitüberschreitungen deaktiviert), außer für Geräte\-Units (\fIJobRunningTimeoutSec=\fP ist standardmäßig \fIDefaultTimeoutStartSec=\fP)\&. Hinweis: Diese Zeitüberschreitung ist unabhängig von allen Unit\-spezifischen Zeitüberschreitungen (beispielsweise den mit \fITimeoutStartSec=\fP in Dienste\-Units gesetzten Zeitüberschreitungen), da die Auftragszeitüberschreitung keine Wirkung für die Unit selbst hat, nur für den Auftrag, der für sie warten könnte\&. Oder mit anderen Worten: Unit\-spezifische Zeitüberschreitungen sind nützlich, um Zustandsänderungen von Units abzubrechen und sie zurückzunehmen\&. Die mit dieser Option gesetzten Auftrags\-Zeitüberschreitungen sind allerdings nur nützlich, um den Auftrag abzubrechen, der darauf wartet, dass die Unit den Zustand ändert\&. .RE .PP \fIJobTimeoutAction=\fP, \fIJobTimeoutRebootArgument=\fP .RS 4 \fIJobTimeoutAction=\fP konfiguriert optional eine zusätzliche Aktion, die beim Erreichen der Zeitüberschreitung unternommen werden soll, siehe die Beschreibung von \fIJobTimeoutSec=\fP und \fIJobRunningTimeoutSec=\fP oben\&. Es akzeptiert die gleichen Werte wie \fIStartLimitAction=\fP\&. Standardmäßig \fBnone\fP\&. \fIJobTimeoutRebootArgument=\fP konfiguriert eine optionale Neustartzeichenkette, die an den Systemaufruf \fBreboot\fP(2) übergeben wird\&. .RE .PP \fIStartLimitIntervalSec=\fP\fIInterval\fP, \fIStartLimitBurst=\fP\fIHäufung\fP .RS 4 Konfiguriert die Unit\-Startratenbegrenzung\&. Units, die mehr als \fIHäufung\fP mal innerhalb des Zeitintervals \fIInterval\fP gestartet werden, wird kein weiterer Start erlaubt\&. Verwenden Sie \fIStartLimitIntervalSec=\fP, um das Überprüfungsinterval (standardmäßig \fIDefaultStartLimitIntervalSec=\fP in Verwalterkonfigurationsdatei, setzen Sie es auf 0, um jede Art von Ratenbegrenzung zu deaktivieren) zu konfigurieren\&. Verwenden Sie \fIStartLimitBurst=\fP, um zu konfigurieren, wie viele Starts pro Interval erlaubt sind (standardmäßig \fIDefaultStartLimitBurst=\fP in Verwalterkonfigurationsdatei)\&. Diese Konfigurationsoptionen sind insbesondere in Zusammenspiel mit der Diensteeinstellung \fIRestart=\fP (siehe \fBsystemd.service\fP(5)) nützlich; allerdings gelten sie für alle Arten von Starts (einschließlich manuellen), nicht nur die durch die Logik \fIRestart=\fP ausgelösten\&. Beachten Sie, dass Units, die für \fIRestart=\fP konfiguriert sind und die die Startbegrenzung erreicht haben, nicht mehr zum Neustarten versucht werden; allerdings können sie weiterhin manuell zu einem späteren Zeitpunkt neu gestartet werden, nachdem das \fIInterval\fP abgelaufen ist\&. Von diesem Zeitpunkt an ist die Neustartlogik wieder aktiviert\&. Beachten Sie, dass \fBsystemctl reset\-failed\fP dazu führen wird, dass der Neustartratenzähler für einen Dienst entleert wird, was nützlich ist, falls der Administrator eine Unit manuell starten möchte und die Startratenbegrenzung dabei stört\&. Beachten Sie, dass diese Ratenbegrenzung durchgesetzt wird, nachdem alle Unit\-Bedingungsprüfungen ausgeführt sind und daher zählen Unit\-Aktivierungen mit fehlschlagenden Bedingungen nicht bei dieser Ratenbegrenzung mit\&. Diese Einstellung wird für Scheiben\-, Ziel\-, Geräte\- und Bereichs\-Units nicht angewandt, da dies Unit\-Typen sind, deren Aktivierung niemals fehlschlagen oder nur ein einziges Mal erfolgreich sein dürfen\&. .sp Wenn eine Unit aufgrund der Müllabführlogik entladen wird (siehe oben) werden auch ihre Ratenbegrenzungszähler entleert\&. Das bedeutet, dass die Konfiguration einer Startratenbegrenzung für eine Unit, die nicht kontinuierlich referenziert wird, keine Wirkung hat\&. .RE .PP \fIStartLimitAction=\fP .RS 4 Konfiguriert eine zusätzliche Aktion, die ergriffen werden soll, falls die mit \fIStartLimitIntervalSec=\fP und \fIStartLimitBurst=\fP konfigurierte Ratenbegrenzung erreicht wird\&. Akzeptiert die gleichen Werte wie die Einstellungen \fIFailureAction=\fP/\fISuccessAction=\fP und führt die gleichen Aktionen aus\&. Falls \fBnone\fP gesetzt ist, wird das Erreichen der Ratenbegrenzung keine Aktion auslösen, außer das der Start nicht erlaubt wird\&. Standardmäßig \fBnone\fP\&. .RE .PP \fIRebootArgument=\fP .RS 4 Konfiguriert das globale Argument für den Systemaufruf \fBreboot\fP(2), falls \fIStartLimitAction=\fP oder \fIFailureAction=\fP eine Neustartaktion ist\&. Dies funktioniert genauso wie das optionale Argument für den Befehl \fBsystemctl reboot\fP\&. .RE .PP \fIConditionArchitecture=\fP, \fIConditionVirtualization=\fP, \fIConditionHost=\fP, \fIConditionKernelCommandLine=\fP, \fIConditionKernelVersion=\fP, \fIConditionSecurity=\fP, \fIConditionCapability=\fP, \fIConditionACPower=\fP, \fIConditionNeedsUpdate=\fP, \fIConditionFirstBoot=\fP, \fIConditionPathExists=\fP, \fIConditionPathExistsGlob=\fP, \fIConditionPathIsDirectory=\fP, \fIConditionPathIsSymbolicLink=\fP, \fIConditionPathIsMountPoint=\fP, \fIConditionPathIsReadWrite=\fP, \fIConditionDirectoryNotEmpty=\fP, \fIConditionFileNotEmpty=\fP, \fIConditionFileIsExecutable=\fP, \fIConditionUser=\fP, \fIConditionGroup=\fP, \fIConditionControlGroupController=\fP .RS 4 Überprüft, dass die festgelegte Bedingung wahr ist, bevor eine Unit gestartet wird\&. Falls sie nicht wahr ist, wird das Starten der Unit (größtenteils leise) übersprungen, allerdings werden alle ihre Ordnungsabhängigkeiten weiterhin berücksichtigt\&. Eine fehlschlagende Bedingung führt nicht dazu, dass die Unit in den Zustand »failed« geschoben wird\&. Die Bedingung wird zu dem Zeitpunkt überprüft, zu dem der in der Warteschlange befindliche Auftrag ausgeführt werden soll\&. Verwenden Sie Bedingungsausdrücke, um geräuschlos Units zu überspringen, die in dem lokal laufenden System nicht zutreffen, beispielsweise da der Kernel oder die Laufzeitumgebung ihre Funktionalität nicht benötigt\&. Verwenden Sie die verschiedenen Optionen \fIAssertArchitecture=\fP, \fIAssertVirtualization=\fP, … für einen ähnlichen Mechanismus, die dazu führen, dass ein Auftrag fehlschlägt (statt übersprungen wird) und zur Protokollierung über die fehlgeschlagene Überprüfung führt (statt geräuschlos verarbeitet zu werden)\&. Für Details über Zusicherungsbedingungen siehe unten\&. .sp \fIConditionArchitecture=\fP kann zur Prüfung verwandt werden, ob das System auf einer bestimmten Architektur läuft\&. Akzeptiert einen aus \fIx86\fP, \fIx86\-64\fP, \fIppc\fP, \fIppc\-le\fP, \fIppc64\fP, \fIppc64\-le\fP, \fIia64\fP, \fIparisc\fP, \fIparisc64\fP, \fIs390\fP, \fIs390x\fP, \fIsparc\fP, \fIsparc64\fP, \fImips\fP, \fImips\-le\fP, \fImips64\fP, \fImips64\-le\fP, \fIalpha\fP, \fIarm\fP, \fIarm\-be\fP, \fIarm64\fP, \fIarm64\-be\fP, \fIsh\fP, \fIsh64\fP, \fIm68k\fP, \fItilegx\fP, \fIcris\fP, \fIarc\fP, \fIarc\-be\fP, um gegen eine bestimmte Architektur zu prüfen\&. Die Architektur wird aus der durch \fBuname\fP(2) zurückgelieferten Information bestimmt und unterliegt daher \fBpersonality\fP(2)\&. Beachten Sie, dass eine Einstellung \fIPersonality=\fP in der gleichen Unit\-Datei keine Auswirkung auf diese Bedingung hat\&. Ein besonderer Architekturname \fInative\fP wird auf die Architektur, für die der Systemverwalter selbst kompiliert wurde, abgebildet\&. Der Test kann durch Voranstellung eines Ausrufezeichens negiert werden\&. .sp \fIConditionArchitecture=\fP kann zur Prüfung verwandt werden, ob das System in einer virtualisierten Umgebung ausgeführt wird und optional testen, ob es eine bestimmte Implementierung ist\&. Akzeptiert entweder einen logischen Wert, um zu prüfen, ob es in einer virtualisierten Umgebung ausgeführt wird oder entweder \fIvm\fP oder \fIcontainer\fP, um gegen eine generische Art von Virtualisierungslösung zu prüfen oder einen aus \fIqemu\fP, \fIkvm\fP, \fIzvm\fP, \fIvmware\fP, \fImicrosoft\fP, \fIoracle\fP, \fIxen\fP, \fIbochs\fP, \fIuml\fP, \fIbhyve\fP, \fIqnx\fP, \fIopenvz\fP, \fIlxc\fP, \fIlxc\-libvirt\fP, \fIsystemd\-nspawn\fP, \fIdocker\fP, \fIrkt\fP, um gegen eine bestimmte Implementierung zu prüfen oder \fIprivate\-users\fP, um zu prüfen, ob das System in einem Benutzernamensraum läuft\&. Siehe \fBsystemd\-detect\-virt\fP(1) für eine vollständige Liste der bekannten Virtualisierungstechniken und ihrer Kennungen\&. Falls mehrere Virtualisierungstechniken verschachtelt sind, wird nur die innerste betrachtet\&. Der Test kann durch Voranstellung eines Ausrufezeichens negiert werden\&. .sp \fIConditionHost=\fP kann dazu verwandt werden, den Rechnernamen oder die Maschinenkennung des Rechners zu vergleichen\&. Dies akzeptiert entweder eine Rechnernamenzeichenkette (optional mit Shell\-artigen Globs), die gegen den lokal gesetzten Rechnernamen, wie er von \fBgethostname\fP(2) zurückgeliefert wird, geprüft wird oder eine als Zeichenkette formatierte Maschinenkennung (siehe \fBmachine\-id\fP(5))\&. Der Test kann durch Voranstellung eines Ausrufezeichens negiert werden\&. .sp \fIConditionKernelCommandLine=\fP kann zur Prüfung, ob eine bestimmte Kernelbefehlszeilenoption gesetzt ist (oder falls ein Ausrufezeichen vorangestellt ist, nicht gesetzt ist) verwandt werden\&. Das Argument muss entweder ein einzelnes Wort oder eine Zuweisung (d\&.h\&. zwei Worte, getrennt durch »=«) sein\&. Im ersten Fall wird die Kernelbefehlszeile nach Auftauchen des Wortes wie es ist oder als linke Seite einer Zuweisung durchsucht\&. Im zweitem Fall wird nach der genauen Zuweisung geschaut, wobei die rechte und die linke Seite passen müssen\&. .sp \fIConditionKernelVersion=\fP kann zur Prüfung, ob die Kernelversion (wie sie durch \fBuname \-r\fP berichtet wird) auf einen bestimmten Ausdruck passt (oder, falls ein Ausrufezeichen vorangestellt ist, nicht darauf passt)\&. Das Argument muss eine einzelne Zeichenkette sein\&. Falls die Zeichenkette mit einem aus »<«, »<=«, »=«, »>=«, »>« beginnt, erfolgt ein relativer Vergleich, andernfalls wird die festgelegte Zeichenkette mit Shell\-artigen Globs abgeglichen\&. .sp Beachten Sie, dass die Verwendung der Kernelversionszeichenkette eine unzuverlässige Art ist, um zu bestimmen, welche Funktionalitäten vom Kernel unterstützt werden, da häufig Funktionalitäten eines Kernels und Korrekturen von neueren Kerneln der Originalautoren in ältere, von Distributionen bereitgetellte Versionen zurückportiert werden\&. Daher ist die Prüfung inhärent unportierbar und sollte nicht für Units verwandt werden, die auf verschiedenen Distributionen verwandt werden könnten\&. .sp \fIConditionSecurity=\fP kann zur Prüfung, ob die übergebene Sicherheitstechnik auf dem System aktiviert ist, verwandt werden\&. Derzeit sind die erkannten Werte \fIselinux\fP, \fIapparmor\fP, \fItomoyo\fP, \fIima\fP, \fIsmack\fP, \fIaudit\fP und \fIuefi\-secureboot\fP\&. Der Test kann durch Voranstellung eines Ausrufezeichens negiert werden\&. .sp \fIConditionCapability=\fP kann zur Prüfung, ob die übergebene Capability in der Capability\-Begrenzungsmenge des Diensteverwalters existiert (d\&.h\&. dies prüft nicht, ob die Capability tatsächlich in der erlaubten oder effektiven Menge verfügbar ist, siehe \fBcapabilities\fP(7) für Details), verwandt werden\&. Übergeben Sie einen Capability\-Namen wie »CAP_MKNOD«, möglicherweise mit vorangestelltem Ausrufezeichen, um die Prüfung zu negieren\&. .sp \fIConditionACPower=\fP kann zur Prüfung, ob das System zum Zeitpunkt der Aktivierung der Unit am Netz hängt oder ausschließlich über Akku läuft\&. Dies akzeptiert ein logisches Argument\&. Falls auf \fItrue\fP gesetzt, wird die Bedingung nur gelten, wenn mindestens ein Stromstecker an einer Wechselstromquelle hängt oder falls keine Wechselstromstecker bekannt sind\&. Umgekehrt, wenn auf \fIfalse\fP gesetzt, wird die Bedingung nur gelten, falls mindestens ein Wechselstromstecker bekannt ist und alle Wechselstromstecker von einer Stromquelle abgetrennt sind\&. .sp \fIConditionNeedsUpdate=\fP akzeptiert entweder /var oder /etc als Argument, möglicherweise mit vorangestelltem »!« (zur Invertierung der Bedingung)\&. Diese Bedingung kann eingesetzt werden, um Units davon abhängig zu machen, ob das festgelegte Verzeichnis einer Aktualisierung bedarf, da die Änderungszeit von /usr neuer als die Stempeldatei \&.updated in dem festgelegten Verzeichnis ist\&. Dies ist nützlich, um Offline\-Aktualisierungen der Betriebssystemressourcen des Lieferanten in /usr zu implementieren, die Aktualisierungen von /etc oder /var beim nachfolgenden Systemstart benötigen\&. Units, die von dieser Bedingung Gebrauch machen, sollten sich vor \fBsystemd\-update\-done.service\fP(8) einordnen, um sicherzustellen, dass sie ausgeführt werden, bevor die Änderungszeit der Stempeldatei zurückgesetzt wird, wodurch eine abgeschlossene Aktualisierung angezeigt wird\&. .sp \fIConditionFirstBoot=\fP akzeptiert ein logisches Argument\&. Diese Bedingung kann eingesetzt werden, um Units davon abhängig zu machen, ob das System mit einem unbestückten /etc\-Verzeichnis (genauer: einem /etc ohne /etc/machine\-id) gestartet wurde\&. Dies kann zum Bestücken von /etc beim ersten Systemstart nach einem Zurücksetzen auf Werkseinstellungen oder wenn eine neue Systeminstanz erstmalig startet verwandt werden\&. .sp Mit \fIConditionPathExists=\fP wird eine Dateiexistenzbedingung geprüft, bevor eine Unit gestartet wird\&. Falls der festgelegte absolute Pfadname nicht existiert, wird die Bedingung fehlschlagen\&. Falls dem an \fIConditionPathExists=\fP übergebene absoluten Pfadnamen ein Ausrufezeichen (»!«) vorangestellt wird, wird der Test negiert und die Unit nur gestartet, falls der Pfadname nicht existiert\&. .sp \fIConditionPathExistsGlob=\fP ist zu \fIConditionPathExists=\fP ähnlich, prüft aber auf die Existenz von mindestens einer Datei oder einem Verzeichnis, das auf das festgelegte Globbing\-Muster passt\&. .sp \fIConditionPathIsDirectory=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und ein Verzeichnis ist\&. .sp \fIConditionPathIsSymbolicLink=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und ein symbolischer Link ist\&. .sp \fIConditionPathIsMountPoint=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und ein Einhängepunkt ist\&. .sp \fIConditionPathIsReadWrite=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob das zugrundeliegende Dateisystem les\- und schreibbar ist (d\&.h\. nicht rein\-lesbar eingehängt ist)\&. .sp \fIConditionDirectoryNotEmpty=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und ein nicht leeres Verzeichnis ist\&. .sp \fIConditionFileNotEmpty=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und sich auf eine normale Datei mit einer von Null verschiedenen Größe bezieht\&. .sp \fIConditionFileIsExecutable=\fP ist zu \fIConditionPathExists=\fP ähnlich, überprüft aber, ob ein bestimmter Pfad existiert und sich auf eine normale, als ausführbar gekennzeichnete Datei bezieht\&. .sp \fIConditionUser=\fP akzeptiert eine numerische »UID«, einen UNIX\-Benutzernamen oder den besonderen Wert »@system«\&. Diese Bedingung kann zur Prüfung, ob der Diensteverwalter als der angegebene Benutzer läuft, verwandt werden\&. Der besondere Wert »@system« kann dazu verwandt werden, zu prüfen, ob die Benutzerkennung innerhalb des Systembenutzerbereichs ist\&. Diese Option ergibt für Systemdienste keinen Sinn, da der Systemverwalter ausschließlich als Benutzer root läuft und daher das Testergebnis konstant ist\&. .sp \fIConditionGroup=\fP ist zu \fIConditionUser=\fP ähnlich, überprüft aber, ob die reale oder effektive Gruppe des Diensteverwalters oder jeder seiner Hilfsgruppen auf die festgelegte Gruppe oder GID passt\&. Diese Einstellung hat keinen besonderen Wert »@system«\&. .sp \fIConditionControlGroupController=\fP akzeptiert einen Cgroup\-Controller\-Namen (z\&.B\&. \fBcpu\fP) und prüft, ob er für den Einsatz im System verfügbar ist\&. Ein bestimmter Controller könnte beispielsweise nicht verfügbar sein, falls er auf der Kernelbefehlszeile mit \fIcgroup_disable=Controller\fP deaktiviert wurde\&. Werden mehrere Controller übergeben, müssen sie mit Leerzeichen getrennt werden und die Bedingung wird nur durchgehen, falls alle aufgeführten Controller für den Einsatz verfügbar sind\&. Systemd unbekannte Controller werden ignoriert\&. Gültige Controller sind \fBcpu\fP, \fBcpuacct\fP, \fBio\fP, \fBblkio\fP, \fBmemory\fP, \fBdevices\fP und \fBpids\fP\&. .sp Falls mehrere Bedingungen festgelegt sind, wird die Unit ausgeführt, falls alle von ihnen zutreffen (d\&.h\&. es wird ein logisches UND angewandt)\&. Den Bedingungsprüfungen kann ein Pipe\-Symbol (|) vorangestellt werden, wodurch die Bedingung eine auslösende Bedingung wird\&. Falls für eine Unit mindestens eine auslösende Bedingung definiert ist, dann wird die Unit ausgeführt, falls mindestens eine der auslösenden Bedingungen und alle der nicht auslösenden Bedingungen zutreffen\&. Falls Sie einem Argument das Pipe\-Symbol und ein Ausrufezeichen voranstellen, muss das Pipe\-Symbol zuerst und das Ausrufezeichen als zweites übergeben werden\&. Außer für \fIConditionPathIsSymbolicLink=\fP folgen alle Pfadprüfungen Symlinks\&. Falls einer der Optionen die leere Zeichenkette zugewiesen wird, wird die Liste der Bedingungen komplett zurückgesetzt und alle vorhergehenden Bedingungseinstellungen (jeder Art) werden keine Wirkung haben\&. .RE .PP \fIAssertArchitecture=\fP, \fIAssertVirtualization=\fP, \fIAssertHost=\fP, \fIAssertKernelCommandLine=\fP, \fIAssertKernelVersion=\fP, \fIAssertSecurity=\fP, \fIAssertCapability=\fP, \fIAssertACPower=\fP, \fIAssertNeedsUpdate=\fP, \fIAssertFirstBoot=\fP, \fIAssertPathExists=\fP, \fIAssertPathExistsGlob=\fP, \fIAssertPathIsDirectory=\fP, \fIAssertPathIsSymbolicLink=\fP, \fIAssertPathIsMountPoint=\fP, \fIAssertPathIsReadWrite=\fP, \fIAssertDirectoryNotEmpty=\fP, \fIAssertFileNotEmpty=\fP, \fIAssertFileIsExecutable=\fP, \fIAssertUser=\fP, \fIAssertGroup=\fP, \fIAssertControlGroupController=\fP .RS 4 Ähnlich zu den oben beschriebenen Bedingungseinstellungen \fIConditionArchitecture=\fP, \fIConditionVirtualization=\fP, … fügen diese Einstellungen Zusicherungsprüfungen zum Hochfahren der Unit hinzu\&. Anders als bei den Bedingungseinstellungen führt jede Zusicherungseinstellung, die nicht erfüllt wird, zu einem Fehlschlatg des Startjobs (das bedeutet, dass es laut protokolliert wird)\&. Beachten Sie, dass das Erreichen einer konfigurierten Zusicherung nicht dazu führt, dass die Unit in den Zustand »failed« eintritt (oder tatsächlich zu irgendeiner Zustandsänderung der Unit führt)\&. Verwenden Sie Zusicherungsausdrücke für Units, die nicht agieren können, falls bestimmte Anforderungen nicht erfüllt sind und wenn dies etwas ist, was sich der Administrator oder Benutzer anschauen sollte\&. .sp Beachten Sie, dass weder eine Zusicherung noch ein Bedingungsausdruck zu Unit\-Zustandsänderungen führt\&. Beachten Sie auch, dass beide zum Zeitpunkt geprüft werden, zu dem der Auftrag ausgeführt werden soll, d\&.h\&. lange nachdem abhängige Aufträge und er selbst in die Warteschlange eingereiht wurden\&. Daher sind weder die Bedingungs\- noch die Zusicherungsausdrücke dazu geeignet, Unit\-Abhängigkeitsbedingungen auszudrücken\&. .RE .PP \fISourcePath=\fP .RS 4 Ein Pfad zu der Konfigurationsdatei, aus der die Unit erstellt wurde\&. Dies ist hauptsächlich für Implementierungen von Generatorwerkzeugen nützlich, die Konfigurationen aus externen Konfigurationsdateiformaten in native Unit\-Dateien umwandeln\&. Diese Funktionalität sollte in normalen Unit\-Dateien nicht verwandt werden\&. .RE .SH "ABBILDUNG VON UNIT\-EIGENSCHAFTEN AUF IHR INVERSES" .PP Unit\-Einstellungen, die eine Beziehung zu einer zweiten Unit erstellen, zeigen sich normalerweise als Eigenschaften in beiden Units, beispielsweise in der Ausgabe von \fBsystemctl show\fP\&. In einigen Fällen (aber nicht immer) ist der Name der Eigenschaft identisch mit dem Namen der Konfigurationseinstellung\&. Diese Tabelle listet die Eigenschaften auf, die in zwei Units angezeigt werden, die durch eine Abhängigkeit verbunden sind\&. Sie zeigt, welche Eigenschaft aus der »Quell«\-Unit welcher Eigenschaft aus der »Ziel«\-Unit entspricht\&. .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&3.\ \& Vorwärts\- und Rückwärts\-Unit\-Eigenschaften\fP .TS allbox tab(:); lB lB lB. T{ »Vorwärts«\-Eigenschaft T}:T{ »Rückwärts«\-Eigenschaft T}:T{ Wo benutzt T} .T& l l l l l ^ l l l l l l l l l l l l l l l l l l l l l l l l l l ^ l l l. T{ \fIBefore=\fP T}:T{ \fIAfter=\fP T}:T{ beides sind Unit\-Datei\-Optionen T} T{ \fIAfter=\fP T}:T{ \fIBefore=\fP T}: T{ \fIRequires=\fP T}:T{ \fIRequiredBy=\fP T}:T{ eine Unit\-Datei\-Option, eine Option im Abschnitt [Install] T} T{ \fIWants=\fP T}:T{ \fIWantedBy=\fP T}:T{ eine Unit\-Datei\-Option, eine Option im Abschnitt [Install] T} T{ \fIPartOf=\fP T}:T{ \fIConsistsOf=\fP T}:T{ eine Unit\-Datei\-Option, eine automatische Eigenschaft T} T{ \fIBindsTo=\fP T}:T{ \fIBoundBy=\fP T}:T{ eine Unit\-Datei\-Option, eine automatische Eigenschaft T} T{ \fIRequisite=\fP T}:T{ \fIRequisiteOf=\fP T}:T{ eine Unit\-Datei\-Option, eine automatische Eigenschaft T} T{ \fITriggers=\fP T}:T{ \fITriggeredBy=\fP T}:T{ automatische Eigenschaften, siehe Hinweise unten T} T{ \fIConflicts=\fP T}:T{ \fIConflictedBy=\fP T}:T{ eine Unit\-Datei\-Option, eine automatische Eigenschaft T} T{ \fIPropagatesReloadTo=\fP T}:T{ \fIReloadPropagatedFrom=\fP T}:T{ beides sind Unit\-Datei\-Optionen T} T{ \fIReloadPropagatedFrom=\fP T}:T{ \fIPropagatesReloadTo=\fP T}: T{ \fIFollowing=\fP T}:T{ n.Z. T}:T{ eine automatische Eigenschaft T} .TE .sp 1 .PP Beachten Sie: \fIWantedBy=\fP und \fIRequiredBy=\fP werden im Abschnitt [Install] verwandt, um Symlinks in \&.wants/\- und \&.requires/\-Verzeichnissen zu erstellen\&. Sie können nicht in Unit\-Konfigurationseinstellungen direkt verwandt werden\&. .PP Beachten Sie: \fIConsistsOf=\fP, \fIBoundBy=\fP, \fIRequisiteOf=\fP, \fIConflictedBy=\fP werden zusammen mit ihren Inversen implizit erstellt und können nicht direkt festgelegt werden\&. .PP Beachten Sie: \fITriggers=\fP wird implizit zwischen einem Socket, einer Pfad\-Unit oder einer Automount\-Unit und der sie aktivierenden Unit erstellt\&. Standardmäßig wird eine Unit mit dem gleichen Namen ausgelöst, dies kann aber mit den Einstellungen \fISockets=\fP, \fIService=\fP und \fIUnit=\fP außer Kraft gesetzt werden\&. Siehe \fBsystemd.service\fP(5), \fBsystemd.socket\fP(5), \fBsystemd.path\fP(5) und \fBsystemd.automount\fP(5) für ihre Details\&. \fITriggersBy=\fP wird implizit von der ausgelösten Unit erstellt\&. .PP Beachten Sie: \fIFollowing=\fP wird zur Gruppierungen von Geräte\-Aliassen und \-Punkten zu der »primären«\-Geräte\-Unit, die Systemd zur Nachverfolgung des Gerätezustandes verwendet, verwandt, normalerweise entspricht dies einem Sysfs\-Pfad\&. Dies taucht nicht in der »Ziel«\-Unit auf\&. .SH [INSTALL]\-ABSCHNITT\-OPTIONEN .PP Unit\-Dateien können einen Abschnitt »[Install]« enthalten, der Installationsinformationen für die Unit transportiert\&. Dieser Abschnitt wird von \fBsystemd\fP(1) während der Laufzeit nicht interpretiert; er wird von den Befehlen \fBenable\fP und \fBdisable\fP des Werkzeugs \fBsystemctl\fP(1) während der Installation einer Unit verwandt\&. .PP \fIAlias=\fP .RS 4 Eine Lerraum\-getrennte Liste von zusätzlichen Namen, unter der diese Unit installiert werden soll\&. Die hier aufgeführten Namen müssen die gleiche Endung (d\&.h\&. Typ) wie der Unit\-Dateiname haben\&. Diese Option kann mehr als einmal angegeben werden, dann werden alle aufgeführten Namen verwandt\&. Bei der Installation wird \fBsystemctl enable\fP die Symlinks von diesen Namen auf den Unit\-Dateinamen erstellen\&. Beachten Sie, dass nicht alle Unit\-Typen solche Aliase unterstützen und diese Einstellung für sie nicht unterstützt wird\&. Insbesondere unterstützen Einhänge\-, Scheiben, Auslagerungs\- und Automount\-Units keinen Alias\&. .RE .PP \fIWantedBy=\fP, \fIRequiredBy=\fP .RS 4 Diese Option kann mehr als einmal verwendet werden oder eine Leerzeichen getrennte Liste von Unit\-Namen kann übergeben werden\&. Im \&.wants/\- oder \&.requires/\-Verzeichnis jeder der aufgeführten Units wird bei der Installation mit \fBsystemctl enable\fP ein symbolischer Link erstellt\&. Dadurch wird eine Abhängigkeit vom Typ \fIWants=\fP oder \fIRequires=\fP von der aufgeführten Unit zu der aktuellen Unit hinzugefügt\&. Das Hauptergebnis besteht darin, dass die aktuelle Unit gestartet wird, wenn die aufgeführte Unit gestartet wird\&. Siehe die Beschreibung von \fIWants=\fP und \fIRequires=\fP im Abschnitt [Unit] für Details\&. .sp \fBWantedBy=foo\&.service\fP in einem Dienst bar\&.service ist größtenteils äquivalent zu \fBAlias=foo\&.service\&.wants/bar\&.service\fP in der gleichen Datei\&. Im Falle von Vorlagen\-Units muss \fBsystemctl enable\fP mit einem Instanzennamen aufgerufen werden und diese Instanz wird zu der \&.wants/\- oder \&.requires/\-Liste der aufgeführten Unit hinzugefügt\&. So wird z\&.B\&. \fBWantedBy=getty\&.target\fP in einem Dienst getty@\&.service dazu führen, dass \fBsystemctl enable getty@tty2\&.service\fP einen Link getty\&.target\&.wants/getty@tty2\&.service auf getty@\&.service erstellt\&. .RE .PP \fIAlso=\fP .RS 4 Zusätzliche Units, die installiert/deinstalliert werden sollen, wenn diese Unit installiert/deinstalliert wird\&. Falls der Benutzer die Installation/Deinstallation einer Unit mit dieser konfigurierten Option erbeten hat, wird \fBsystemctl enable\fP und \fBsystemctl disable\fP automatisch auch die in dieser Option aufgeführten Units installieren/deinstallieren\&. .sp Diese Option kann mehr als einmal verwandt werden oder eine Lerraum\-getrennte Liste von Unit\-Namen kann übergeben werden\&. .RE .PP \fIDefaultInstance=\fP .RS 4 In Vorlagen\-Unit\-Dateien kennzeichnet dies, welche Instanz der Unit freigegeben werden soll, falls die Vorlage ohne explizit gesetzte Instanz freigegeben wird\&. Diese Option zeigt nur bei Vorlagen\-Unit\-Dateien Wirkung\&. Die gekennzeichnete Zeichenkette muss als Instanzenidenifizierer geeignet sein\&. .RE .PP Die folgenden Kennzeicher werden in dem Abschnitt Install interpretiert: %n, %N, %p, %i, %j, %g, %G, %U, %u, %m, %H, %b, %v\&. Ihre Bedeutung ist im nächsten Abschnitt beschrieben\&. .SH KENNZEICHNER .PP Viele Einstellungen klären Kennzeichner, die zum Schreiben generischer Unit\-Dateien verwandt werden können, die sich auf Laufzeit\- oder Unit\-Parameter beziehen, die ersetzt werden, wenn die Unit\-Dateien geladen werden\&. Kennzeichner müssen bekannt und auflösbar sein, damit die Einstellungen gültig sind\&. Die folgenden Kennzeichner werden verstanden: .sp .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br \fBTabelle\ \&4.\ \&In Unit\-Dateien verfügbare Kennzeichner\fP .TS allbox tab(:); lB lB lB. T{ Kennzeichner T}:T{ Bedeutung T}:T{ Details T} .T& l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l l. T{ "%b" T}:T{ Boot\-Kennung T}:T{ Die Boot\-Kennung des laufenden Systems, formatiert als Zeichenkette\&. Siehe \fBrandom\fP(4) für weitere Informationen\&. T} T{ "%C" T}:T{ Wurzelverzeichnis des Zwischenspeichers T}:T{ Dies ist entweder /var/cache (für den Systemverwalter) oder worauf der Pfad »$XDG_CACHE_HOME« zeigt (für Benutzerverwalter)\&. T} T{ "%E" T}:T{ Wurzelverzeichnis der Konfiguration T}:T{ Dies ist entweder /etc (für den Systemverwalter) oder worauf der Pfad »$XDG_CONFIG_HOME« zeigt (für Benutzerverwalter)\&. T} T{ "%f" T}:T{ Maskierter Dateiname T}:T{ Dies ist entweder der demaskierte Instanzenname (falls zutreffend), dem / vorangestellt wurde (falls zutreffend), oder der desmaskierte Präfixname, dem / vorangestellt wurde\&. Hiermit wird das Demaskieren entsprechend den oben beschriebenen Regeln des Maskierens absoluter Dateisystempfade implementiert\&. T} T{ "%h" T}:T{ Benutzer\-Home\-Verzeichnis. T}:T{ Dies ist das Home\-Verzeichnis des Benutzers, der die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters löst sich dies auf »/root« auf\&. T} T{ "%H" T}:T{ Rechnername T}:T{ Der Rechnername des laufenden Systems zum Zeitpunkt des Ladens der Unit\-Konfiguration\&. T} T{ "%i" T}:T{ Instanzenname T}:T{ Für instanziierte Units ist dies die Zeichenkette zwischen dem ersten »@«\-Zeichen und der Typendung\&. Leer für nichtinstanziierte Units\&. T} T{ "%I" T}:T{ Demaskierter Instanzenname T}:T{ Identisch zu »%i«, aber mit vorgenommener Maskierung\&. T} T{ "%j" T}:T{ Abschließende Komponente des Präfixes T}:T{ Dies ist die Zeichenkette zwischen dem letzten »\-« und dem Ende des Präfixnamens\&. Falls es kein »\-« gibt, ist dies zu »%p« identisch\&. T} T{ "%J" T}:T{ Nicht maskierte abschließende Komponente des Präfixes T}:T{ Identisch zu »%j«, aber mit zurückgenommener Maskierung\&. T} T{ "%L" T}:T{ Wurzel des Protokollierverzeichnisses T}:T{ Dies ist entweder /var/log (für den Systemverwalter) oder worauf der Pfad »$XDG_CONFIG_HOME« zeigt, mit angehängtem /log (für Benutzerverwalter)\&. T} T{ "%m" T}:T{ Maschinenkennung T}:T{ Die Maschinenkennung des laufenden Systems, formatiert als Zeichenkette\&. Siehe \fBmachine\-id\fP(5) für weitere Informationen\&. T} T{ "%n" T}:T{ Vollständiger Unit\-Name T}:T{ \ \& T} T{ "%N" T}:T{ Vollständiger Unit\-Name T}:T{ Identisch zu »%n«, aber mit entfernter Typendung\&. T} T{ "%p" T}:T{ Präfixname T}:T{ Für instanziierte Units bezieht sich das auf die Zeichenkette vor dem ersten »@«\-Zeichen des Unit\-Namens\&. Für nicht instanziierte Units identisch zu »%N«\&. T} T{ "%P" T}:T{ Nicht maskierter Präfixname T}:T{ Identisch zu »%p«, aber mit zurückgenommener Maskierung\&. T} T{ "%s" T}:T{ Benutzer\-Shell T}:T{ Dies ist die Shell des Benutzers, der die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters wird dies auf »/bin/sh« aufgelöst\&. T} T{ "%S" T}:T{ Wurzel des Zustandsverzeichnisses T}:T{ Dies ist entweder /var/lib (für den Systemverwalter) oder worauf der Pfad »$XDG_CONFIG_HOME« zeigt (für Benutzerverwalter)\&. T} T{ "%t" T}:T{ Wurzel des Laufzeitverzeichnisses T}:T{ Dies ist entweder /run (für den Systemverwalter) oder worauf der Pfad »$XDG_RUNTIME_DIR« zeigt (für Benutzerverwalter)\&. T} T{ "%T" T}:T{ Verzeichnis für temporäre Dateien T}:T{ Dies ist entweder /tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist\&. T} T{ "%g" T}:T{ Benutzergruppe T}:T{ Dies ist der Name der Gruppe, die die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters löst sich dies auf »root« auf\&. T} T{ "%G" T}:T{ Benutzer\-GID T}:T{ Dies ist die numerische GID des Benutzer, der die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters löst sich dies auf »0« auf T} T{ "%u" T}:T{ Benutzername T}:T{ Dies ist der Name des Benutzers, der die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters löst sich dies auf »root« auf\&. T} T{ "%U" T}:T{ Benutzer\-UID T}:T{ Dies ist die numerische UID des Benutzer, der die Diensteverwalterinstanz ausführt\&. Im Falle des Systemverwalters löst sich dies auf »0« auf T} T{ "%v" T}:T{ Kernelveröffentlichung T}:T{ Identisch zur Ausgabe von \fBuname \-r\fP T} T{ "%V" T}:T{ Verzeichnis für größere und dauerhafte temporäre Dateien T}:T{ Dies ist entweder /var/tmp oder der Pfad, auf den »$TMPDIR«, »$TEMP« oder »$TMP« gesetzt ist\&. T} T{ "%%" T}:T{ Einzelnes Prozentzeichen T}:T{ Verwenden Sie »%%« anstelle von »%«, um ein einzelnes Prozentzeichen festzulegen\&. T} .TE .sp 1 .SH BEISPIELE .PP \fBBeispiel\ \&1.\ \&Units erlauben, freigegeben zu werden\fP .PP Der nachfolgende Schnipsel (hervorgehoben) erlaubt es einer Unit (z\&.B\&. foo\&.service) mittels \fBsystemctl enable\fP freigegeben zu werden: .sp .if n \{\ .RS 4 .\} .nf [Unit] Description=Foo [Service] ExecStart=/usr/sbin/foo\-daemon \fI[Install]\fP \fIWantedBy=multi\-user\&.target\fP .fi .if n \{\ .RE .\} .PP Nach der Ausführung von \fBsystemctl enable\fP verlinkt ein Symlink /etc/systemd/system/multi\-user\&.target\&.wants/foo\&.service auf die tatsächlich zu erstellende Unit\-Datei\&. Er teilt Systemd mit, die Unit beim Starten von multi\-user\&.target hereinzuziehen\&. Das inverse \fBsystemctl disable\fP wird diesen Symlink wieder entfernen\&. .PP \fBBeispiel\ \&2.\ \&Lieferanteneinstellungen außer Kraft setzen\fP .PP Es gibt zwei Methoden, die Lieferanteneinstellungen in Unit\-Dateien außer Kraft zu setzen: Kopieren der Unit\-Datei aus /lib/systemd/system nach /etc/systemd/system und Anpassen der gewählten Einstellungen oder alternativ durch Anlage eines Verzeichnisses namens \fIUnit\fP\&.d/ innerhalb von /etc/systemd/system und darin einer Ergänzungsdatei \fIName\fP\&.conf, die nur die speziellen Einstellungen, an denen Sie interessiert sind, ändert\&. Beachten Sie, dass diese Ergänzungsdateien in lexikalischer Reihenfolge ihres Dateinamens verarbeitet werden, falls mehrere vorhanden sind\&. .PP Der Vorteil der ersten Methode besteht darin, dass normalerweise die komplette Unit außer Kraft gesetzt wird und die Unit des Lieferanten überhaupt nicht mehr ausgewertet wird\&. Der Nachteil besteht darin, dass Verbesserungen an der Unit\-Datei durch den Lieferanten bei Aktualisierungen nicht mehr automatisch mit berücksichtigt werden\&. .PP Der Vorteil der zweite Methode besteht darin, dass nur die genau gewünschten Einstellungen außer Kraft gesetzt und Aktualisierungen vom Lieferanten angewandt werden\&. Dies hat den Nachteil, dass zukünftige Aktualisierungen vom Lieferanten zu den lokalen Änderungen inkompatibel sein könnten\&. .PP Dies gilt auch für Benutzerinstanzen von Systemd, aber mit anderen Orten für die Unit\-Dateien\&. Siehe den Abschnitt über Unit\-Ladepfade für weitere Details\&. .PP Lassen Sie uns annehmen, dass es eine vom Lieferanten bereitgestellte Unit /lib/systemd/system/httpd\&.service mit dem folgenden Inhalt gibt: .sp .if n \{\ .RS 4 .\} .nf [Unit] Description=Ein HTTP\-Server After=remote\-fs\&.target sqldb\&.service Requires=sqldb\&.service AssertPathExists=/srv/webserver [Service] Type=notify ExecStart=/usr/sbin/some\-fancy\-httpd\-server Nice=5 [Install] WantedBy=multi\-user\&.target .fi .if n \{\ .RE .\} .PP Jetzt möchten Sie als Administrator einige Einstellungen ändern: zuerst könnte in der lokalen Installation /srv/webserver nicht existieren, da der Webserver stattdessen auf /srv/www konfiguriert ist\&. Zweitens hängt der HTTP\-Server aufgrund der lokalen Konfiguration auch von einem Arbeitsspeicherzwischenspeicherdienst, memcached\&.service ab, der (mittels \fIRequires=\fP) hereingezogen und auch entsprechend angeordnet (mittels \fIAfter=\fP) werden soll\&. Drittens möchte der Administrator zur weiteren Härtung des Dienstes die Einstellung \fIPrivateTmp=\fP (siehe \fBsystemd.exec\fP(5) für Details) setzen\&. Schließlich möchte der Administrator die Einstellung des Nice\-Wertes des Dienstes auf den Vorgabewert 0 zurücksetzen\&. .PP Die erste Möglichkeit besteht darin, die Unit\-Datei nach /etc/systemd/system/httpd\&.service zu kopieren und die ausgewählten Einstellungen zu ändern: .sp .if n \{\ .RS 4 .\} .nf [Unit] Description=Ein HTTP\-Server After=remote\-fs\&.target sqldb\&.service \fImemcached\&.service\fP Requires=sqldb\&.service \fImemcached\&.service\fP AssertPathExists=\fI/srv/www\fP [Service] Type=notify ExecStart=/usr/sbin/some\-fancy\-httpd\-server \fINice=0\fP \fIPrivateTmp=yes\fP [Install] WantedBy=multi\-user\&.target .fi .if n \{\ .RE .\} .PP Alternativ könnte der Administrator eine Ergänzungsdatei in /etc/systemd/system/httpd\&.service\&.d/local\&.conf mit folgendem Inhalt erstellen: .sp .if n \{\ .RS 4 .\} .nf [Unit] After=memcached\&.service Requires=memcached\&.service # Setzt alle Zusicherungen zurück and fügt dann die gewünschten Bedingungen hinzu AssertPathExists= AssertPathExists=/srv/www [Service] Nice=0 PrivateTmp=yes .fi .if n \{\ .RE .\} .PP Beachten Sie, dass bei Einstellungen, die als Liste ausgewertet werden (und die keine Abhängigkeit sind), wie \fIAssertPathExists=\fP (oder z\&.B\&. \fIExecStart=\fP in Dienste\-Units), zuerst die Liste bereinigt werden muss, bevor Einträge (ohne den zu entfernenden) hinzugefügt werden, falls Sie einen Eintrag von einer Einstellung entfernen möchten\&. Abhängigkeiten (\fIAfter=\fP, usw\&.) können nicht auf die leere Liste zurückgesetzt werden, daher können in Ergänzungsdateien Abhängigkeiten nur hinzugefügt werden\&. Falls Sie eine Abhängigkeit entfernen möchten, müssen Sie die gesamte Unit außer Kraft setzen\&. .SH "SIEHE AUCH" .PP \fBsystemd\fP(1), \fBsystemctl\fP(1), \fBsystemd\-system.conf\fP(5), \fBsystemd.special\fP(7), \fBsystemd.service\fP(5), \fBsystemd.socket\fP(5), \fBsystemd.device\fP(5), \fBsystemd.mount\fP(5), \fBsystemd.automount\fP(5), \fBsystemd.swap\fP(5), \fBsystemd.target\fP(5), \fBsystemd.path\fP(5), \fBsystemd.timer\fP(5), \fBsystemd.scope\fP(5), \fBsystemd.slice\fP(5), \fBsystemd.time\fP(7), \fBsystemd\-analyze\fP(1), \fBcapabilities\fP(7), \fBsystemd.directives\fP(7), \fBuname\fP(1) .SH ANMERKUNGEN .IP " 1." 4 Schnittstellenstabilitätszusage .RS 4 \%https://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise .RE .SH ÜBERSETZUNG Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen. Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an .