.\" -*- coding: UTF-8 -*- '\" t .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SYSTEMD\&.ENVIRONMENT\-GENERATOR 7 "" "systemd 239" systemd.environment\-generator .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.environment\-generator \- Systemd\-Umgebungsdatei\-Generatoren .SH ÜBERSICHT .HP \w'\fB/lib/systemd/system\-environment\-generators/some\-generator\fR\ 'u \fB/lib/systemd/system\-environment\-generators/ein\-Generator\fP .HP \w'\fB/usr/lib/systemd/user\-environment\-generators/some\-generator\fR\ 'u \fB/usr/lib/systemd/user\-environment\-generators/ein\-Generator\fP .PP .nf /run/systemd/system\-environment\-generators/* /etc/systemd/system\-environment\-generators/* /usr/local/lib/systemd/system\-environment\-generators/* /lib/systemd/system\-environment\-generators/* .fi .PP .nf /run/systemd/user\-environment\-generators/* /etc/systemd/user\-environment\-generators/* /usr/local/lib/systemd/user\-environment\-generators/* /usr/lib/systemd/user\-environment\-generators/* .fi .sp .SH BESCHREIBUNG .PP Generatoren sind kleine Programme, die sich in /lib/systemd/system\-environment\-generators/ und anderen oben aufgeführten Verzeichnissen befinden\&. \fBsystemd\fP(1) wird diese Programme sehr früh beim Hochfahren jedes Verwalters und zum Zeitpunkt des Neuladens der Konfiguration ausführen, bevor die in \fBsystemd.generator\fP(7) beschriebenen Generatoren ausgeführt werden und bevor irgendeine Unit gestartet wird\&. Umgebungsgeneratoren können die Umgebung, die der Verwalter an Dienste und andere Prozesse exportiert, außer Kraft setzen\&. .PP Generatoren werden aus einer Gruppe von Pfaden, die während der Compilierung bestimmt werden, wie diese oben aufgeführt sind, geladen\&. System\- und Benutzerumgebungsgeneratoren werden aus Verzeichnissen geladen, deren Namen in system\-environment\-generators/ bzw\&. user\-environment\-generators/ enden\&. Generatoren, die in früher aufgeführten Verzeichnissen gefunden werden, setzen diejenigen außer Kraft, die mit dem gleichen Namen in Verzeichnissen weiter hinten in der Liste sind\&. Ein Symlink auf /dev/null oder eine leere Datei kann zur Ausmaskierung eines Generators verwandt werden, wodurch dessen Ausführung verhindert wird\&. Bitte beachten Sie, dass die Reihenfolge der zwei Verzeichnisse mit der höchsten Priorität in Hinblick auf den Unit\-Ladepfad umgedreht ist und Generatoren in /run solche in /etc außer Kraft setzen\&. .PP Nach der Installation neuer Generatoren oder der Aktualisierung ihrer Konfiguration kann \fBsystemctl daemon\-reload\fP ausgeführt werden\&. Dies wird alle Generatoren erneut ausführen und ihre Umgebungskonfiguration aktualisieren\&. Sie wird für alle nachfolgend gestarteten Dienste verwandt\&. .PP Umgebungsdateigeneratoren werden ähnlich wie die in \fBsystemd.generator\fP(7) beschriebenen Unit\-Dateigeneratoren ausgeführt, mit den folgenden Unterschieden: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Generatoren werden der Reihe nach in der alphanumerischen Reihenfolge ihrer finalen Komponenten ihres Namens ausgeführt\&. Die Ausgabe jedes Generators wird sofort ausgewertet und zur Aktualisierung der Umgebung für Generatoren, die danach ausgeführt werden, verwandt\&. Daher können spätere Generatoren die Ausgabe von früheren Generatoren verwenden und/oder verändern\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} Generatoren werden von jeder Verwalterinstanz ausgeführt, ihre Ausgabe kann für jeden Benutzer anders sein\&. .RE .PP Es wird empfohlen, Generatorennamen mit Zahlen zu beginnen, um ihre Ordnung zu vereinfachen\&. .SH BEISPIELE .PP \fBBeispiel\ \&1.\ \&Ein einfacher Generator, der eine Umgebungsvariable erweitert, falls ein Verzeichnis im Dateisystem existiert\fP .sp .if n \{\ .RS 4 .\} .nf # 50\-xdg\-data\-dirs\&.sh #!/bin/bash # setzt den Vorgabewert XDG_DATA_DIRS="${XDG_DATA_DIRS:\-/usr/local/share/:/usr/share}" # fügt ein Verzeichnis hinzu, falls es existiert if [[ \-d /opt/foo/share ]]; then XDG_DATA_DIRS=/opt/foo/share:${XDG_DATA_DIRS} fi # schreibt unsere Ausgabe echo XDG_DATA_DIRS=$XDG_DATA_DIRS .fi .if n \{\ .RE .\} .PP \fBBeispiel\ \&2.\ \&Ein komplizierterer Generator, der bestehende Konfiguration liest und eine Variable verändert\fP .sp .if n \{\ .RS 4 .\} .nf # 90\-rearrange\-path\&.py #!/usr/bin/env python3 """ Konzept für einen beispielhaften Systemd\-Umgebungsgenerator, der sicherstellt, dass bin\-Verzeichnisse immer nach den passenden sbin\-Verzeichnissen im Pfad sind\&. (Ändert /sbin:/bin:/foo/bar in /bin:/sbin:/foo/bar\&.) Dieser Generator zeigt, wie die möglicherweise von vorhergehenden Generatoren erstellte Konfiguration außer Kraft gesetzt wird\&. In Bash\-Code wäre es einfacher, wir haben es aber in Python geschrieben, um zu zeigen, dass das möglich ist und als Vorlage für noch interessantere Generatoren\&. """ import os import pathlib def rearrange_bin_sbin(path): """Sicherstellen, dass alle Verzeichnispaare \&.../bin, \&.../sbin in dieser Reihenfolge sind >>> rearrange_bin_sbin(\*(Aq/bin:/sbin:/usr/sbin:/usr/bin\*(Aq) \*(Aq/bin:/sbin:/usr/bin:/usr/sbin\*(Aq """ items = [pathlib\&.Path(p) for p in path\&.split(\*(Aq:\*(Aq)] for i in range(len(items)): if \*(Aqsbin\*(Aq in items[i]\&.parts: ind = items[i]\&.parts\&.index(\*(Aqsbin\*(Aq) bin = pathlib\&.Path(*items[i]\&.parts[:ind], \*(Aqbin\*(Aq, *items[i]\&.parts[ind+1:]) if bin in items[i+1:]: j = i + 1 + items[i+1:]\&.index(bin) items[i], items[j] = items[j], items[i] return \*(Aq:\*(Aq\&.join(p\&.as_posix() for p in items) if __name__ == \*(Aq__main__\*(Aq: path = os\&.environ[\*(AqPATH\*(Aq] # Dies sollte immer gesetzt sein \&. # Falls nicht, stürzen wir einfach ab, wir sind auch i.O.\&. new = rearrange_bin_sbin(path) if new != path: print(\*(AqPATH={}\*(Aq\&.format(new)) .fi .if n \{\ .RE .\} .PP \fBBeispiel\ \&3.\ \&Fehlersuche in einem Generator\fP .sp .if n \{\ .RS 4 .\} .nf SYSTEMD_LOG_LEVEL=debug VAR_A=etwas VAR_B="etwas anderes" \e /lib/systemd/system\-environment\-generators/pfad\-zum\-generator .fi .if n \{\ .RE .\} .SH "SIEHE AUCH" .PP \fBsystemd\-environment\-d\-generator\fP(8), \fBsystemd.generator\fP(7), \fBsystemd\fP(1), \fBsystemctl\fP(1) .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 .