BEZEICHNUNG
systemd.path - Pfad-Unit-Konfiguration
ÜBERSICHT
Pfad.path
BESCHREIBUNG
Eine Unit-Konfigurationsdatei, deren Namen in ».path« endet, kodiert Informationen über einen durch Systemd überwachten Pfad, für Pfad-basierte Aktivierung.
Diese Handbuchseite führt die für diesen Unit-Typ spezifischen Konfigurationsoptionen auf. Siehe systemd.unit(5) für die gemeinsamen Optionen aller Unit-Konfigurationsdateien. Die gemeinsamen Konfigurationseinträge werden in den generischen Abschnitten »[Unit]« und »[Install]« konfiguriert. Die Pfad-spezifischen Konfigurationsoptionen werden in dem Abschnitt »[Path]« konfiguriert.
Für jede Pfaddatei muss eine passende Unit-Datei existieren, welche die bei Änderungen von Pfaden zu aktivierende Unit beschreibt. Standardmäßig wird ein Dienst mit dem gleichen Namen (außer der Endung) wie der Pfad aktiviert. Beispiel: Eine Pfad-Datei foo.path aktiviert einen passenden Dienst foo.service. Die zu aktivierende Unit kann mit Unit= (siehe unten) gesteuert werden.
Intern verwenden Pfad-Units das inotify(7)-API, um Dateisysteme zu überwachen. Daher unterliegen sie den gleichen Beschränkungen wie Inotify und können beispielsweise keine Dateien oder Verzeichnisse überwachen, die von anderen Maschinen auf fernen NFS-Dateisystemen geändert werden.
Wenn eine Dienste-Unit ausgelöst wird, weil sich eine Pfad-Unit beendet (unabhängig davon, ob sie sich erfolgreich beendete oder fehlschlug), werden überwachte Pfade sofort erneut überprüft und der Dienst entsprechend neugestartet. Als Schutz gegen Dauerschleifen in diesem Auslöse-/Startzyklus wird eine Startratenbegrenzung für diese Dienste-Unit erzwungen, siehe StartLimitIntervalSec= und StartLimitBurst= in systemd.unit(5). Anders als andere Dienstefehlschläge, wird die Fehlerbedingung, dass die Startratenbegrenzung erreicht wurde, von der Dienste-Unit zu der Pfad-Unit weitergeleitet und führt dazu, dass auch die Pfad-Unit fehlschlägt und damit die Schleife beendet wird.
AUTOMATISCHE ABHÄNGIGKEITEN
Implizite
Abhängigkeiten
Die folgenden Abhängigkeiten werden implizit
hinzugefügt:
• Falls eine Pfad-Unit unterhalb einer anderen Einhänge-Unit in der Dateisystemhierarchie ist, werden sowohl eine Bedingungs- als auch eine Ordnungsabhängigkeit automatisch erstellt.
• Zwischen einer Pfad-Unit und der Unit, die sie aktivieren soll, wird eine implizite Before=-Abhängigkeit hinzugefügt.
Standardabhängigkeiten
Die folgenden Abhängigkeiten werden hinzugefügt,
es sei denn, DefaultDependencies=no ist gesetzt:
• Pfad-Units werden automatisch Abhängigkeiten vom Typ Before= von paths.target, Abhängigkeiten vom Typ After= und Requires= von sysinit.target und Abhängigkeiten vom Typ Conflicts= und Before= von shutdown.target haben. Dies stellt sicher, dass Pfad-Units sauber vor dem Herunterfahren des Systems beendet werden. Nur Pfad-Units, die in der frühen Systemstartphase oder spät beim Herunterfahren beteiligt sind, sollten die Option DefaultDependencies= deaktivieren.
OPTIONEN
Pfad-Units müssen einen Abschnitt [Path] enthalten, der Informationen über den/die überwachten Pfad(e) transportiert. Die für den Abschnitt [Path] von Pfad-Units speziellen Optionen sind:
PathExists=, PathExistsGlob=, PathChanged=, PathModified=, DirectoryNotEmpty=
Definiert die auf bestimmte Änderungen zu überwachenden Pfade: PathExists= kann zum Beobachten der simplen Existenz einer Datei oder eines Verzeichnisses verwandt werden. Falls die Datei existiert, wird die konfigurierte Unit aktiviert. PathExistsGlob= funktioniert ähnlich, aber prüft auf die Existenz mindestens einer Datei, die auf das festgelegte Glob-Muster passt. PathChanged= kann zum Beobachten einer Datei oder eines Verzeichnisses und zum Aktivieren der konfigurierten Unit, wenn es/sie sich ändert, verwandt werden. Sie wird nicht bei jedem Schreibzugriff auf die beobachtete Datei aktiviert, sondern sie wird aktiviert, wenn die für das Schreiben geöffnete Datei geschlossen wird. PathModified= ist ähnlich, aber zusätzlich wird sie bei einfachen Schreibzugriffen auf die beobachtete Datei aktiviert. DirectoryNotEmpty= kann dazu verwandt werden, ein Verzeichnis zu beobachten und die konfigurierte Unit zu aktivieren, wenn es mindestens eine Datei enthält.
Die Argumente dieser Anweisungen müssen absolute Dateisystempfade sein.
Mehrere Verzeichnisse des gleichen Typs oder unterschiedlicher Typen können kombiniert werden, um mehrere Pfade zu beobachten. Falls einer der Optionen die leere Zeichenkette zugeordnet wird, wird die Liste der zu beobachtenden Pfade zurückgesetzt und jede vorherige Zuweisung von diesen Optionen wird keinen Effekt zeigen.
Falls zum Zeitpunkt der Aktivierung der Unit ein Pfad bereits existiert (im Falle von PathExists= und PathExistsGlob=) oder ein Verzeichnis bereits nicht leer ist (im Falle von DirectoryNotEmpty=), dann wird die konfigurierte Unit auch sofort aktiviert. Für PathChanged= und PathModified= gilt etwas ähnliches nicht.
Falls der Pfad selbst oder eines der enthaltenen Verzeichnisse nicht zugreifbar ist, wird systemd auf Rechteänderungen prüfen und bemerken, dass die Bedingungen erfüllt sind, wenn die Berechtigungen es erlauben.
Unit=
Die zu aktivierende Unit, wenn sich eine der konfigurierten Pfade ändert. Das Argument ist ein Unit-Name, deren Endung nicht ».path« ist. Falls nicht festgelegt, ist die Vorgabe für diesen Wert der Dienst, der bis auf die Endung den gleichen Namen wie die Pfad-Unit hat. (Siehe oben.) Es wird empfohlen, dass der Unit-Name, der aktiviert wird, und der Unit-Name der Pfad-Unit abgesehen von der Endung identisch sind.
MakeDirectory=
Akzeptiert ein logisches Argument. Falls wahr, werden die zu beobachtenden Verzeichnis vor der Beobachtung erstellt. Diese Option wird für PathExists=-Einstellungen ignoriert. Standardmäßig false.
DirectoryMode=
Falls MakeDirectory= aktiviert ist, wird der hier festgelegte Modus verwandt, um die in Frage kommenden Verzeichnisse zu erstellen. Akzeptiert einen Zugriffsmodus in oktaler Notation. Standardmäßig 0755.
SIEHE AUCH
systemd(1), systemctl(1), systemd.unit(5), systemd.service(5), inotify(7), systemd.directives(7)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian [AT] helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german [AT] lists.org>.