Das Konfigurationsformat ist eine Zeile pro Pfad und enthält Typ-, Pfad-, Modus-, Eigentümerschaft-, Alter- und Argumentfelder. Die Zeilen werden durch Zeilenumbrüche, die Felder durch Leerraumzeichen getrennt:
Felder können C-artige Maskierungen enthalten. Mit Ausnahme des siebten Feldes (dem »Argument«) können alle Felder in englische Anführungszeichen eingeschlossen werden. Beachten Sie, dass sämtliche Leerraumzeichen, die in der Zeile nach dem Anfang des Argumentenfeldes angetroffen werden, als Teil des Argumentenfeldes angesehen werden. Um das Argumentenfeld mit einem Leerraumzeichen zu beginnen, verwenden Sie C-artige Maskierungen (z.B. »\x20«).
Der Typ besteht aus einem einzelnen Buchstaben und optional einem oder mehreren Modifikatorzeichen: einem Plus-Zeichen (»+«), Ausrufezeichen (»!«), Minuszeichen (»-«), Gleichheitszeichen (»=«), Tildezeichen (»~«) und/oder Zirkumflex (»^«).
Die folgenden Zeilentypen werden verstanden:
f, f+
f erstellt eine Datei, falls sie noch nicht existiert. Falls der Argumentparameter angegeben ist und die Datei noch nicht existierte, wird er in die Datei geschrieben. f+ erstellt eine Datei oder schneidet sie ab. Falls der Argumentparameter angegeben ist, wird er in die Datei geschrieben. Folgt keinen Symlinks.
w, w+
Schreibt den Argumentparameter in eine Datei, falls die Datei existiert. Falls ein + angehängt ist, wird die Zeile an die Datei angehängt. Falls Ihre Konfiguration mehrere Zeilen in die gleiche Datei schreibt, verwenden Sie w+. Zeilen dieses Typs akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Der Argumentparameter wird ohne abschließenden Zeilenumbruch geschrieben. C-artige Rückwärtsschrägstrichmaskierungen werden interpretiert. Folgt Symlinks.
d
Erstellt ein Verzeichnis. Der Modus und die Eigentümerschaft werden angepasst, falls angegeben. Inhalte dieses Verzeichnisses unterliegen einer zeitbasierten Bereinigung, falls das Argument »Alter« festgelegt ist.
D
Ähnlich zu d, aber zusätzlich werden die Inhalte des Verzeichnisses entfernt, wenn --remove verwandt wird.
e
Passt den Modus und die Eigentümerschaft eines bestehenden Verzeichnisses an und entfernt altersbasiert die Inhalte darin. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Inhalte dieser Verzeichnisse unterliegen zeitbasierter Bereinigung, falls das Argument »Alter« festgelegt ist. Falls das Argument »Alter« »0« ist, werden die Inhalte bei jedem Aufruf von
systemd-tmpfiles(8) --clean bedingungslos gelöscht.
Damit dieser Eintrag nützlich ist, muss mindestens eines der Argumente Modus, Benutzer, Gruppe oder Alter festgelegt sein, da andernfalls dieser Eintrag keinen Effekt hat. Als Ausnahme kann ein Eintrag ohne Effekt bei der Kombination mit ! nützlich sein, siehe Beispiele.
Hinzugefügt in Version 230.
v
Erstellt einen Teildatenträger, falls der Pfad noch nicht existiert, das Dateisystem Teildatenträger unterstützt (Btrfs) und das System selbst in einen Teildatenträger installiert ist (konkret: das Wurzelverzeichnis / ist selbst ein Teildatenträger). Andernfalls wird wie bei
d ein normales Verzeichnis erstellt.
Ein mit diesem Zeilentyp erstellter Teildatenträger wird keiner abstrakteren Kontingentgruppe zugeordnet. Verwenden Sie dafür q oder Q, die die Erstellung einfacher Kontingentgruppenhierarchien erlauben, siehe unten.
Hinzugefügt in Version 219.
q
Erstellt wie bei
v einen Teildatenträger oder Verzeichnis, weist den Teildatenträger aber der gleichen abstrakteren Kontingentgruppe wie dem Eltern-Teildatenträger zu. Dies stellt sicher, dass abstraktere Begrenzungen und Buchführungen auf den Eltern-Teildatenträger auch den angegebenen Teildatenträger einschließen. Auf von Btrfs verschiedenen Dateisystemen ist diese Zeile zu
d identisch.
Falls der Teildatenträger bereits existiert, erfolgen an der Kontingenthierarchie keine Änderungen, unabhängig davon, ob der Teildatenträger bereits an die Kontingentgruppe angehängt ist. Siehe auch Q unten. Siehe btrfs-qgroup(8) für Details über das Btrfs-Kontingentgruppenkonzept.
Hinzugefügt in Version 228.
Q
Erstellt wie bei
v einen Teildatenträger oder ein Verzeichnis, weist dem neuen Teildatenträger eine neue Blatt-Kontingentgruppe zu. Statt wie bei
q die abstraktere Kontingentgruppenzuweisung vom Eltern-Teildatenträger zu kopieren, wird die niedrigste Kontingentgruppe des Eltern-Teildatenträgers bestimmt, die nicht in der Blatt-Kontingentgruppe ist. Dann wird eine »Zwischen«-Kontingentgruppe eingefügt, die eine Stufe unterhalb dieser Stufe ist und sich den Kennungsteil mit dem angegebenen Teildatenträger teilt. Falls keine abstraktere Kontingentgruppe für den Eltern-Teildatenträger existiert, wird stattdessen eine neue Kontingentgruppe auf Stufe 255 eingefügt, die die gleiche Kennung wie der angegebene Teildatenträger hat. Diese neue Zwischenkontingentgruppe wird dann der abstrakten Kontingentgruppe des Eltern-Teildatenträgers zugewiesen und die festgelegte Blatt-Kontingentgruppe des Teildatenträgers wird dieser zugewiesen.
Effektiv hat dies eine ähnliche Wirkung wie q, führt allerdings eine neue abstrakte Kontingentgruppe für den angegebenen Teildatenträger ein, die zum Durchsetzen von Begrenzungen und Buchführungen für den angegebenen Teildatenträger und innerhalb darin erstellter Kinder-Teildatenträger verwandt werden kann. Werden daher Teildatenträger nur mittels q und Q erstellt, wird ein »Unterbaumkontingente«-Konzept implementiert. Für jeden Teildatenträger, für das Q gesetzt ist, wird eine »Unterbaum«-Kontingentgruppe erstellt und alle darin erstellten Kinder-Teildatenträger werden ihr zugewiesen. Jeder Teildatenträger, für den q gesetzt ist, wird keine solche »Unterbaum«-Kontingentgruppe erhalten, aber es wird sichergestellt, dass er zu der gleichen »Unterbaum«-Kontingentgruppe wie sein direkter Eltern-Teildatenträger zugewiesen wird.
Es wird empfohlen, Q für Teildatenträger zu verwenden, die typischerweise weitere Teildatenträger enthalten und bei denen es wünschenswert ist, Buchführung und Kontingentbegrenzungen auf allen Kind-Teildatenträger zusammen zu haben. Beispiele für Q sind typischerweise /home/ oder /var/lib/machines/. q sollte dagegen für Teildatenträger verwandt werden, die entweder normalerweise keine weiteren Teildatenträger enthalten oder bei denen keine Buchführung und Kontingentbegrenzungen benötigt werden, die auf alle Kind-Teildatenträger zusammen angewandt werden sollen. Beispiele für q sind typischerweise /var/ oder /var/tmp/.
Wie mit q hat Q keine Wirkung auf die Kontingentgruppenhierarchie, falls der Teildatenträger bereits existiert, unabhängig davon, ob der Teildatenträger bereits zu der Kontingentgruppe gehört.
Hinzugefügt in Version 228.
p, p+
Erstellt eine benannte Pipe (FIFO), falls sie noch nicht existiert. Falls + angehängt ist und eine Datei bereits existiert, wo die Pipe erstellt werden soll, wird sie entfernt und durch die Pipe ersetzt.
L, L+
Erstellt einen Symlink, falls er noch nicht existiert. Falls + angehängt ist und eine Datei bereits existiert, wo der Symlink erstellt werden soll, wird sie entfernt und durch den Symlink ersetzt. Falls das Argument nicht angegeben wird werden Symlinks auf Dateien mit dem gleichen Namen, die in /usr/share/factory/ liegen, erstellt. Beachten Sie, dass Berechtigungen und Eigentümerschaften bei Symlinks ignoriert werden.
c, c+
Erstellt einen Zeichengeräteknoten, falls er noch nicht existiert. Falls + angehängt ist und eine Datei bereits existiert, wo der Geräteknoten erstellt werden soll, wird sie entfernt und durch den Geräteknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhängen, um statische Geräteknoten nur beim Systemstart zu erstellen, da Udev keine statischen Geräteknoten verwalten wird, die zur Laufzeit erstellt wurden.
b, b+
Erstellt einen Blockgeräteknoten, falls er noch nicht existiert. Falls + angehängt ist und eine Datei bereits existiert, wo der Geräteknoten erstellt werden soll, wird sie entfernt und durch den Geräteknoten ersetzt. Es wird empfohlen, an diesen Eintrag ein Ausrufezeichen anzuhängen, um statische Geräteknoten nur beim Systemstart zu erstellen, da Udev keine statischen Geräteknoten verwalten wird, die zur Laufzeit erstellt wurden.
C, C+
Kopiert eine Datei oder ein Verzeichnis rekursiv, falls die Zieldateien oder -verzeichnisse noch nicht existieren oder das Zielverzeichnis leer ist. Beachten Sie, dass dieser Befehl nicht in Unterverzeichnisse absteigen wird, falls das Zielverzeichnis bereits existiert und nicht leer ist, außer der Aktion wird
+ angehängt. Stattdessen wird die gesamte Kopieraktion übersprungen. Falls das Argument weggelassen wird, werden Dateien aus dem Quellverzeichnis /usr/share/factory/ mit dem gleichen Namen kopiert. Folgt keinen Symlinks. Die Inhalte der Verzeichnisse unterliegen zeitbasierten Bereinigungen, falls das Alter-Argument festgelegt wurde.
Hinzugefügt in Version 214.
x
Ignoriert während der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung, wie sie mit dem Parameter Age gesteuert wird, auszuschließen. Beachten Sie, dass Zeilen von diesem Typ nicht den Effekt von r- und R-Zeilen beeinflussen. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen.
X
Ignoriert während der Bereinigung einen Pfad. Verwenden Sie diesen Typ, um Pfade von der Reinigung, wie sie mit dem Parameter Age gesteuert wird, auszuschließen. Anders als
x wird der Parameter keinen Inhalt ausschließen, falls Pfad ein Verzeichnis ist, sondern nur Verzeichnisse selbst. Beachten Sie, dass Zeilen von diesem Typ nicht den Effekt von
r- und
R-Zeilen beeinflussen. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen.
Hinzugefügt in Version 198.
r
Entfernt eine Datei oder ein Verzeichnis, falls sie/es bereits existiert. Dies kann nur zur Entfernung leerer Verzeichnisse verwandt werden, verwenden Sie andernfalls R. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks.
R
Entfernt einen Pfad und alle seine Unterverzeichnisse (falls es ein Verzeichnis ist) rekursiv. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks.
z
Passt den Zugriffsmodus, die Benutzer- und Gruppeneigentümerschaft an und stellt den SELinux-Sicherheitskontext einer Datei oder eines Verzeichnisses, falls sie/es existiert, wieder her. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks.
Z
Setzt rekursiv den Zugriffsmodus, die Benutzer- und Gruppeneigentümerschaft und stellt den SELinux-Sicherheitskontext einer Datei oder eines Verzeichnisses, falls sie/es existiert, sowie, falls zutreffend, seiner Unterverzeichnisse und der darin enthaltenen Dateien, wieder her. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Folgt keinen Symlinks.
t
Setzt erweiterte Attribute, siehe
attr(5) für Details. Das Argumentenfeld sollte eine oder mehrere Zuweisungen in der Form
Namensraum.
Attribut=
Wert akzeptieren, Beispiele finden Sie weiter unten. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Dies kann zum Setzen von SMACK-Label nützlich sein. Folgt keinen Symlinks.
Bitte beachten Sie, dass erweiterte Attribute, die mit diesem Zeilentyp setzbar sind, ein anderes Konzept als die mit h/H setzbaren Linux-Dateiattribute sind, siehe unten.
Hinzugefügt in Version 218.
T
Identisch zu
t, arbeitet aber rekursiv.
Hinzugefügt in Version 219.
h
Setzt Linux-Datei-/Verzeichnisattribute. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen.
Das Format des Argumentenfelds lautet [+-=][aAcCdDeijPsStTu]. Das Präfix + (die Vorgabe) führt dazu, dass die Attribute hinzugfügt werden, - führt dazu, dass die Attribute entfernt werden, = führt dazu, dass die Attribute genau auf die nachfolgenden Buchstaben gesetzt werden. Die Buchstaben »aAcCdDeijPsStTu« wählen die neuen Attribute für die Dateien aus, siehe chattr(1)EN für weitere Informationen.
Wird nur = übergeben, werden alle oben aufgeführten Dateiattribute zurückgesetzt. Es muss daraufhingewiesen werden, dass sich das Präfix = auf die Attribute beschränkt, die den hier aufgeführten Buchstaben entsprechen. Alle weiteren Attribute bleiben unverändert. Folgt keinen Symlinks.
Bitte beachten Sie, dass die Linux-Datei-Attribute, die mit diesem Zeilentyp setzbar sind, ein anderes Konzept als die mit t/T setzbaren erweiterten Attribute sind, siehe oben.
H
Identisch zu
h, arbeitet aber rekursiv.
Hinzugefügt in Version 220.
a, a+
Setzt POSIX ACLs (Zugriffsteuerungslisten), siehe
acl(5)EN. Falls zusätzlich »X« verwandt wird, wird das Ausführen-Bit nur gesetzt, falls die Datei ein Verzeichnis ist oder das Ausführungsrecht bereits für einen Benutzer gesetzt ist, wie in
setfacl(1)EN erwähnt. Falls
+ angehängt wird, werden die angegebenen Einträge zu der bestehenden Menge hinzugefügt.
systemd-tmpfiles(8) wird automatisch die benötigten Basiseinträge für Benutzer und Gruppen basierend auf dem Zugriffsmodus der Datei hinzufügen, außer die Basiseinträge existieren bereits oder werden explizit festgelegt. Die Maske wird hinzugefügt, falls sie nicht explizit festgelegt oder bereits vorhanden ist. Zeilen von diesem Typ akzeptieren Shell-artige Globs anstelle von normalen Pfadnamen. Dies kann zum Erlauben von zusätzlichen Zugriffen auf bestimmte Dateien nützlich sein. Folgt keinen Symlinks.
Hinzugefügt in Version 219.
A, A+
Identisch zu
a und
a+, aber rekursiv. Folgt keinen Symlinks.
Hinzugefügt in Version 219.
Falls das Ausrufezeichen (»!«) verwandt wird, ist diese Zeile nur bei der Ausführung während des Systemstarts sicher und kann ein laufendes System beschädigen. Bei Zeilen ohne Ausrufezeichen wird angenommen, dass ihr Aufruf jederzeit sicher ist, z.B. bei Paket-Upgrades. systemd-tmpfiles(8) wird Zeilen mit einem Ausrufezeichen nur in Betracht ziehen, falls die Option --boot angegeben ist.
Beispiel:
# Sicherstellen, dass diese standardmäßig erstellt werden, so dass es
# kein anderer machen kann
d /tmp/.X11-unix 1777 root root 10d
# Lösen des X11-Sperrdatei-Links
r! /tmp/.X[0-9]*-lock
Im Gegensatz zur ersten Zeile würde die zweite Zeile ein laufendes System beschädigen und wird daher nur mit --boot ausgeführt.
Falls das Minuszeichen (»-«) verwandt wird, wird ein Fehlschlag bei der Ausführung dieser Zeile während der Erstellung (und nur der Erstellung) nicht zu der Ausführung von systemd-tmpfiles führen und einen Fehler zurückliefern.
Beispiel:
# Verändert sysfs, aber schlägt nicht fehl, falls es sich in einem Container mit schreibgeschütztem /proc befindet
w- /proc/sys/vm/swappiness - - - - 10
Falls das Gleichheitszeichen (»=«) verwandt wird, dann wird der Dateityp bestehender Objekte in dem festgelegten Pfad überprüft und dieser entfernt, falls sie nicht übereinstimmen. Hierzu gehören alle implizit erstellten Elternverzeichnisse (die entweder Verzeichnisse oder Verzeichnis-Symlinks sein können). Ist beispielsweise ein FIFO anstelle eines der Elternpfadkomponenten, wird dieser durch ein Verzeichnis ersetzt.
Falls das Tildezeichen (»~«) verwandt wird, dann wird die Argumentspalte (d.h. die 6.) vor der Verwendung Base64-dekodiert[1]. Dieser Modifikator wird nur auf Zeilentypen unterstützt, die Dateiinhalte schreiben können, d.h. f, f+, w, +. Dies ist zum Schreiben beliebiger Binärdaten (einschließlich Zeilenumbrüchen und Nullbytes) in Dateien nützlich. Beachten Sie, dass das Argument nicht der Kennzeichnererweiterung unterliegt, falls dieser Schalter verwandt wird, weder vor noch nach der Base64-Dekodierung.
Falls das Zirkumflexzeichen (»^«) verwandt wird, dann akzeptiert die Argumentspalte (d.h. die 6.) einen Dienstezugangsberechtigungsnamen, aus dem die Argumetendaten gelesen werden. Siehe System- und Dienste-Zugangsberechtigungen[2] für Details über das Konzept der Zugangsberechtigungen. Dieser Modifikator wird nur auf Zeilentypen unterstützt, die Dateiinhalte schreiben können, d.h. f, f+, w, +. Dies ist zum Schreiben beliebiger Dateien mit Inhalten, die von woanders ausgelesen wurden, einschließlich VM- oder Container-Verwaltern weiter oben, nützlich. Falls die festgelegte Zugangsberechtigung für den Dienst systemd-tmpfiles nicht gesetzt ist, wird diese Zeile ohne Rückmeldung übersprungen. Falls »^« und »~« kombiniert werden, wird Base64-Dekodierung auf die Inhalte der Zugangsberechtigungen angewandt.
Beachten Sie, dass für alle Zeilentypen, die zur Erstellung irgendeiner Art von Dateimodus führen (d.h. f/F, d/D/v/q/Q, p, L, c/b und C) führende Verzeichnisse implizit falls notwendig erstellt werden, die root gehören und den Zugriffsmodus 0755 haben. Um sicherzustellen, dass Sie sie mit anderen Modi oder Eigentümerschaften erstellen, verwenden Sie geeignete d-Zeilen.
Das Datumsfeld, falls gesetzt, wird zur Entscheidung, welche Dateien beim Bereinigen gelöscht werden sollen, verwandt. Falls eine Datei oder ein Verzeichnis älter als die aktuelle Zeit minus des Feldes »Alter« ist, wird sie gelöscht. Das Feldformat ist eine Serie von Ganzzahlen, an die eine der nachfolgenden entsprechenden Zeiteinheiten angehängt ist: s (Sekunden), m oder min (Minuten), h (Stunden), d (Tage), w (Wochen), ms (Millisekunden) und us (Mikrosekunden). Es können auch die ausgeschriebenen englischen Namen verwandt werden.
Falls mehrere Ganzzahlen und Einheiten festgelegt werden, werden die Zeitwerte aufsummiert. Falls eine Ganzzahl ohne Einheit angegeben wird, wird s angenommen.
Wird das Alter auf Null gesetzt, werden die Dateien bedingungslos bereinigt.
Das Feld »Alter« wird nur auf Zeilen, die mit d, D, e, v, q, Q, C, x und X beginnen, angewandt. Falls weggelassen oder auf »-« gesetzt, erfolgt keine automatische Bereinigung.
Falls das Feld »Alter« mit einem Tildezeichen »~« beginnt, erfolgt die Bereinigung nur auf Dateien und Verzeichnisse eine Stufe innerhalb des festgelegten Verzeichnisses, aber nicht auf Dateien und Verzeichnisse direkt innerhalb davon.
Das Alter des Dateisystemeintrags wird von seinem letzten Änderungszeitstempel (mtime), seinem letzten Zugriffszeitstempel (atime) und (außer für Verzeichnisse) seinem letzten Statusänderungszeitstempel (ctime) bestimmt. Standardmäßig wird jeder der drei (oder zwei) Werte die Bereinigung verhindern, falls er neuer als die aktuelle Zeit minus des Feldes »Alter« ist. Um die Löschung basierend auf einer bestimmten Art von Dateistempel einzuschränken, kann das Argument »Alterungsdauer« verwandt werden.
Das Argument »Alterungsdauer« setzt die Zeitstempeltypen, die für die Altersüberprüfung verwandt werden, außer Kraft. Es kann angegeben werden, indem dem Alter-Argument eine Reihe von Zeichen, zur Angabe des Zeitstempeltyps, und ein Doppelpunkt (»:«) vorangestellt werden: »Alterungsdauer…:IBereinigungszeit«. Das Argument kann aus a (A für Verzeichnisse), b (B für Verzeichnisse), c (C für Verzeichnisse) oder m (M für Verzeichnisse) bestehen. Diese geben Zugriff, Erstellung, letzte Statusänderung bzw. letzte Veränderungszeit eines Dateisystemeintrags an. Der Kleinbuchstabe gibt an, dass der übergebene Zeitstempeltyp für Dateien betrachtet werden soll, während der Großbuchstabe angibt, dass der übergebene Zeitstempeltyp für Verzeichnisse betrachtet werden soll. Siehe statx(2)EN Dateistempelfelder (file stamp types) für weitere Details über Zeitstempeltypen.
Falls nicht angegeben, ist die Vorgabe für das Feld »Alterungsdauer« abcmABM, d.h. standardmäßig werden alle Datei-Zeitstempelfelder berücksichtigt mit der Ausnahme des Zeitstempels der letzten Statusänderung (ctime) bei Verzeichnissen. Dies erfolgt, da die Alterungslogik selbst die Ctime ändert, immer wenn sie eine Datei darin löscht. Um sicherzustellen, dass die laufende Alterungslogik nicht beim nächsten Durchlauf in sich selbst rückkoppelt, wird standardmäßig die ctime für Verzeichnisse ignoriert.
Beispiel:
# Dateien, die vor mehr als einer Stunde erstellt und verändert bzw.
# Verzeichnisse, auf die vor mehr als einer Stunde in »/tmp/foo/bar«
# zugegriffen wurden unterliegen der zeitbasierten Bereinigung.
d /tmp/foo/bar - - - bmA:1h -
Beachten Sie, dass während der Ausführung des Alterungsalgorithmus eine exklusive BSD-Dateisperre (siehe flock(2)) auf jedem Verzeichnis/jeder Datei erlangt, das oder die der Algorithmus entscheidet zu entfernen. Falls der Alterungsalgorithmus eine bereits erlangte Sperre (gemeinsame oder exklusive) auf einem Verzeichnis/einer Datei findet, wird es/sie (und alles darunter) übersprungen. Anwendungen können dies dazu verwenden, temporär bestimmte Verzeichnisunterbäume von dem Alterungsalgorithmus auszuschließen: die Anwendungen können selbst eine BSD-Dateisperre erlangen und solange sie diese behalten, wird das Altern des Verzeichnisses/der Datei und alles darunter ausgeschaltet.
Dieses Verhalten kann dazu verwandt werden, um eine garantierte Bereinigung von Dateien oder Verzeichnissen sicherzustellen, deren Lebensdauer zu der Lebensdauer des Prozesses, der diese an einem von systemd-tmpfiles mt dem Alter von »0« überwachten Ort erzeugte, angepasst ist und dass der Prozess das Verzeichnis oder die Datei sofort sperrt, bevor er es/sie verwendet. Da die BSD-Sperre prozessabhängig ist, wird garantiert, dass die Datei entsperrt wird, sobald sich der Prozess beendet. Das bedeutet, dass diese Dateien und Verzeichnisse entsperrt und von systemd-tmpfiles bereinigt werden, selbst wenn der Prozess abstürzt.