SYSTEMD.PATH(5)

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-Unit-Dateien können Abschnitte [Unit] und [Install] enthalten, die in systemd.unit(5) beschrieben sind.

Pfad-Unit-Dateien müssen einen Abschnitt [Path] enthalten, der Informationen über den oder 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 angegebene 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.

    Beachten Sie, dass Dateien, deren Namen mit einem Punkt beginnt (d.h. versteckte Dateien), im allgemeinen bei der Überwachung dieser Pfade ignoriert werden.

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 angegeben, 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 true, 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.

TriggerLimitIntervalSec=, TriggerLimitBurst=
    Konfiguriert eine Begrenzung, wie oft diese Pfad-Unit innerhalb eines bestimmten Zeitintervalls aktiviert werden darf. Das TriggerLimitIntervalSec= kann zum Konfigurieren der Länge des Zeitintervalls in den gewöhnlichen Zeiteinheiten »ms«, »s«, »min«, »h« … verwandt werden und beträgt standardmäßig 2s. Siehe systemd.time(7) für Details über die verschiedenen verstandenen Zeiteinheiten. Die Einstellung TriggerLimitBurst= akzeptiert einen positiven Ganzzahlwert und legt die Anzahl der erlaubten Aktivierungen pro Zeitintervall fest und beträgt standardmäßig 200. Setzen Sie einen der beiden auf 0, um jede Art von Auslöse-Ratebeschränkung zu deaktivieren. Falls diese Beschränkung erreicht wird, wird die Unit in den Fehlschlagmodus versetzt und wird die Pfade nicht mehr überwachen, bis sie neu gestartet wird. Beachten Sie, dass diese Beschränkung durchgesetzt wird, bevor die Diensteaktivierung in die Warteschlange eingestellt wird.

    Hinzugefügt in Version 250.

Lesen Sie systemd.unit(5), systemd.exec(5) und systemd.kill(5) für weitere Einstellungen.

SIEHE AUCH

Für die ausgelösten Units werden Umgebungsvariablen mit Details über den Trigger gesetzt. Siehe den Abschnitt »Vom Diensteverwalter gesetzte oder ausgebreitete Umgebungsvariablen« in systemd.exec(5) für weitere Details.

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