Dies ist der Befehl kdb-elektrify-getenv, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
kdb-elektrify-getenv - die Anwendungsumgebung elektrisieren
ZUSAMMENFASSUNG
kdb elektrify-getenv Anwendung Optionen
BESCHREIBUNG
Wenn eine Anwendung mit libelektragetenv elektrifiziert wird, fordert sie nicht nur an
Umwelt, aber auch Elektra für jeden getenv(3) und secure_getenv(3) Bibliotheksaufruf.
Sein Hauptzweck besteht darin:
· Standardmethoden zur Änderung der Umgebung haben
· Machen Sie eine erneute Anmeldung (oder sogar einen Neustart!) von Anwendungen überflüssig
· Ermöglichen Sie eine hierarchische Struktur für die Umgebung
· Ermöglichen Sie, dass Einstellungen nur für einzelne Anwendungen oder nur in einem speziellen Kontext gelten
· weiterhin die Vorteile bewahren (Vererbung der Umgebung an Unterprozesse)
· Verfügbarkeit in at, cron und ähnlichen Skripten.
Es wird mithilfe einer LD_PRELOAD-Technik implementiert, siehe ANWENDUNG unten für die globale Aktivierung.
NACHSUCHE
Der Hauptzweck dieses Ansatzes besteht darin, endlich eine klar definierte Methode zum Festlegen und Abrufen zu haben
Umgebungsvariablen. Die Variablen von Elektra sind bei jedem Neuzugang sofort im Einsatz
Anwendung gestartet (kein erneutes Anmelden erforderlich).
Um dies zu tun, getenv(3) sucht neben der Suche in der Umgebung auch nach mehreren Quellen
(Umgebung). Als laufendes Beispiel wird verwendet getenv("HOME") -> /pfad/zur/home:
1. Vorgegebene Befehlszeilenparameter werden immer bevorzugt (siehe OPTIONAL unten).
zB kdb elektrify-getenv --elektra:HOME=/path/to/home
2. Dann /env/override/ wird nachgeschaut, wo Schlüssel ist der Parameter für getenv. Wenn
gefunden, wird der Schlüssel zurückgegeben, wenn es sich um einen Nullschlüssel handelt, getenv wird zurückkehren NULL.
zB kdb kompensieren user/env/override/HOME /pfad/zur/home
3. Dann wird die Umgebung abgefragt.
zB HOME=/pfad/zu/home kdb elektrify-getenv
4. Dann /env/fallback/ wird nachgeschaut. Wenn der Schlüssel gefunden wird, wird er zurückgegeben
ist ein Nullschlüssel, getenv wird zurückkehren NULL.
zB kdb kompensieren user/env/fallback/HOME /pfad/zur/home
OPTIONAL
Wann elektrify-getenv aktiv ist, akzeptiert jede Anwendung zusätzlich Elektras getenv
Optionen. Eine Verschachtelung der Optionen von Elektra und der Anwendung ist zulässig. Elektra wird es tun
Analysieren Sie zuerst seine Optionen (beginnend mit --elektra) und verwerfen Sie sie vor den anderen
Die Anwendung wird gestartet. Daher erkennt die Anwendung nicht, dass sie überhaupt existierten.
zB: gegeben kdb elektrify-getenv -V --elektra-debug -L Die Anwendung wird
aufgerufen werden mit -V -L.
Intern Optionen
--elektra-help
Gibt diese Hilfe aus.
--elektra-version
Gibt Versionsinformationen an.
--elektra-debug=Datei, ELEKTRA_DEBUG or /env/option/debug
Verfolge alles getenv(3) Aufrufe einer Datei. stderr, wenn keine Datei angegeben ist, z kdb kompensieren
user/env/option/debug "". Beachten Sie, dass Nullwerte (kein viertes Argument) die Funktion deaktivieren
Debug-Meldungen. Siehe Beispiele unten.
--elektra-clearenv, ELEKTRA_CLEARENV or /env/option/clearenv
Telefon klarenv(3) vor dem Betreten von main. Dies ist eine empfohlene Sicherheitsfunktion.
Elektra selbst kann die Umgebung weiterhin nutzen, wenn sie auf diese Weise konfiguriert ist.
--elektra-reload-timeout=time_in_ms, ELEKTRA_RELOAD_TIMEOUT or /env/option/reload_timeout
Aktivieren Sie eine Timeout-basierte Funktion, wenn eine Zeit in ms angegeben wird (und nicht 0 ist).
Interne Optionen sind in drei verschiedenen Varianten erhältlich:
1. als Kommandozeilenparameter: --elektra-, welche sind nicht durchgekommen exec(3)
Anrufe.
2. als Umgebungsvariable: ELEKTRA_. die durchgereicht werden könnten exec(3)
Anrufe, werden aber von entfernt klarenv(3) Anrufe.
3. als Elektra KDB-Eintrag: /env/option/, die der Weg sind, eine Option zu erreichen
für jede Anwendung aktiviert werden.
zB kdb kompensieren user/env/option/clearenv "" um die Umgebung für alle Anwendungen freizugeben
von diesem Benutzer gestartet (beachten Sie, dass zumindest PATH sollte mit eingestellt werden kdb kompensieren
user/env/fallback/PATH "/Behälter:/ usr / bin" dann).
Beachten Sie, dass Nullschlüssel nicht festgelegten Optionen entsprechen. Z.B kdb kompensieren
system/env/option/debug "/tmp/elektra.log" und kdb kompensieren user/env/option/debug werden wir
Aktivieren Sie die Protokollierung für das System, außer für den aktuellen Benutzer.
Contextual Optionen
--elektra% %= or /env/layer/
Fügen Sie die Kontextinformationen hinzu (=Ebene) % % mit seinem Wert . Beachten Sie, dass
%Süßkartoffel% ist vordefiniert mit argv [0] und %basename% mit Basisname(argv[0]).
Werte können enthalten/um Hierarchien zu bilden, z.B --elektra%name%=app/profile
Optionen für Anwendungen
--elektra:key=value, /env/override/ or /env/fallback/
Legen Sie einen Schlüssel/Wert fest, der bevorzugt werden soll, d. h. der erste, der berücksichtigt wird, wie in erläutert
Nachschlag.
Schlüssel können / enthalten, um Hierarchien zu bilden, z --elektra:my/HOME=/path/to/home.
ANWENDUNG
Um immer die getenv-Umgebung von Elektra zu verwenden, fügen Sie einfach die Ausgabe zur Datei hinzu:
kdb elektrify-getenv | Schwanz -1 | sudo tee -a /etc/ld.so.preload
Dies kann auch mit Elektra erfolgen:
sudo kdb mount /etc/ld.so.preload system/ld/preload Zeile null
sudo kdb set "system/ld/preload/new" `kdb elektrify-getenv | Schwanz -1`
KONTEXT
Die Metadaten Kontext in der Spezifikation können verwendet werden, um eine kontextabhängige Darstellung zu ermöglichen
Nachschlagen. In seinem Metawert sind alle Ersetzungen von % % wird durch das Gegebene ersetzt
Kontextoptionen --elektra% %= und /env/layer/ Schlüssel.
Um beispielsweise für jeden Benutzer und jede Anwendung ein anderes Home-Verzeichnis zu haben:
kdb set user/env/layer/user markus
kdb set user/users/markus/konqueror/HOME /home/download
kdb setmeta spec/env/override/HOME context /users/%user%/%name%/HOME
Verwenden Sie kdb-elektrify-getenv online über die Dienste von onworks.net