Provided by: manpages-de_2.16-1_all bug

BEZEICHNUNG

       systemd.environment-generator - Systemd-Umgebungsdatei-Generatoren

ÜBERSICHT

       /lib/systemd/system-environment-generators/ein-Generator

       /usr/lib/systemd/user-environment-generators/ein-Generator

       /run/systemd/system-environment-generators/*
       /etc/systemd/system-environment-generators/*
       /usr/local/lib/systemd/system-environment-generators/*
       /lib/systemd/system-environment-generators/*

       /run/systemd/user-environment-generators/*
       /etc/systemd/user-environment-generators/*
       /usr/local/lib/systemd/user-environment-generators/*
       /usr/lib/systemd/user-environment-generators/*

BESCHREIBUNG

       Generatoren sind kleine Programme, die sich in /lib/systemd/system-environment-generators/
       und anderen oben aufgeführten Verzeichnissen befinden. systemd(1) wird diese Programme
       sehr früh beim Hochfahren jedes Verwalters und zum Zeitpunkt des Neuladens der
       Konfiguration ausführen, bevor die in systemd.generator(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.

       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.

       Nach der Installation neuer Generatoren oder der Aktualisierung ihrer Konfiguration kann
       systemctl daemon-reload ausgeführt werden. Dies wird alle Generatoren erneut ausführen und
       ihre Umgebungskonfiguration aktualisieren. Sie wird für alle nachfolgend gestarteten
       Dienste verwandt.

       Umgebungsdateigeneratoren werden ähnlich wie die in systemd.generator(7) beschriebenen
       Unit-Dateigeneratoren ausgeführt, mit den folgenden Unterschieden:

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

       •   Generatoren werden von jeder Verwalterinstanz ausgeführt, ihre Ausgabe kann für jeden
           Benutzer anders sein.

       Es wird empfohlen, Generatorennamen mit Zahlen zu beginnen, um ihre Ordnung zu
       vereinfachen.

BEISPIELE

       Beispiel 1. Ein einfacher Generator, der eine Umgebungsvariable erweitert, falls ein
       Verzeichnis im Dateisystem existiert

           # 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

       Beispiel 2. Ein komplizierterer Generator, der bestehende Konfiguration liest und eine
       Variable verändert

           # 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('/bin:/sbin:/usr/sbin:/usr/bin')
               '/bin:/sbin:/usr/bin:/usr/sbin'
               """
               items = [pathlib.Path(p) for p in path.split(':')]
               for i in range(len(items)):
                   if 'sbin' in items[i].parts:
                       ind = items[i].parts.index('sbin')
                       bin = pathlib.Path(*items[i].parts[:ind], 'bin', *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 ':'.join(p.as_posix() for p in items)

           if __name__ == '__main__':
               path = os.environ['PATH'] # 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('PATH={}'.format(new))

       Beispiel 3. Fehlersuche in einem Generator

           SYSTEMD_LOG_LEVEL=debug VAR_A=etwas VAR_B="etwas anderes" \
           /lib/systemd/system-environment-generators/pfad-zum-generator

SIEHE AUCH

       systemd-environment-d-generator(8), systemd.generator(7), systemd(1), systemctl(1)

Ü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 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@lists.debian.org>.