Це команда kdb-elektrify-getenv, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
kdb-elektrify-getenv - електрифікувати середовище додатків
СИНТАКСИС
kdb elektrify-getenv додатку опції
ОПИС
Коли програма електрифікується за допомогою libelektragetenv, вона не лише запитує
про, але й Elektra для кожного getenv(3) і secure_getenv(3) дзвінок у бібліотеку.
Його основна мета полягає в тому, щоб:
· мають стандартні способи модифікації середовища
· зробити повторний вхід (або навіть перезапуск!) програм непотрібним
· допускати ієрархічну структуру для середовища
· дозволити налаштуванням застосовуватися лише до окремих програм або лише в спеціальному контексті
· все ще зберігати переваги (успадкування середовища від підпроцесів)
· Доступність у at, cron та подібних сценаріях.
Він реалізований за допомогою техніки LD_PRELOAD, див ВИКОРИСТАННЯ нижче для глобальної активації.
ПЕРЕГЛЯД
Основна мета цього підходу — нарешті мати чітко визначений спосіб встановлення та отримання
змінні середовища. Змінні Elektra будуть використовуватися негайно для кожного нового
запущена програма (повторний вхід не потрібен).
Робити так, getenv(3) шукатиме кілька джерел поруч із пошуком у середовищі
(оточення). Як запущений приклад буде використовуватися getenv("ДОМАШНЯ") -> /шлях/до/додому:
1. Надані параметри командного рядка завжди будуть переважними (див ВАРІАНТИ нижче).
Напр kdb elektrify-getenv --elektra:HOME=/шлях/до/додому
2. Тоді /env/override/ буде шукатися, де ключ є параметром до getenv. Якщо
знайдено, ключ буде повернуто, якщо це нульові ключі, getenv повернеться NULL.
Напр kdb комплект user/env/override/HOME /шлях/до/додому
3. Потім буде запитано середовище.
Напр ДОМА=/шлях/до/додому kdb elektrify-getenv
4. Тоді /env/fallback/ буде переглянуто. Якщо знайдено, ключ буде повернуто, якщо він
є нульовим ключем, getenv повернеться NULL.
Напр kdb комплект user/env/fallback/HOME /шлях/до/додому
ВАРІАНТИ
Коли elektrify-getenv активний, кожна програма додатково приймає getenv Elektra
варіанти. Дозволено чергування параметрів Elektra та програми. Електра буде
Спочатку проаналізуйте його параметри (починаючи з --elektra) і відкиньте їх перед іншими
програма запущена. Тому програма не побачить, що вони взагалі існували,
наприклад: дано kdb elektrify-getenv -V --elektra-debug -L додаток буде
викликатись з -V -L.
Внутрішній Опції
--elektra-допомога
Виводить цю довідку.
--електра-версія
Надає інформацію про версію.
--elektra-debug=файл, ELEKTRA_DEBUG or /env/option/debug
Відстежте все getenv(3) виклики файлу. stderr, якщо файл не вказано, напр kdb комплект
user/env/option/debug "". Зауважте, що нульові значення (без аргументу forth) вимкнуть
повідомлення налагодження. Дивіться приклади нижче.
--elektra-clearenv, ELEKTRA_CLEARENV or /env/option/clearenv
виклик clearenv(3) перед входом до основної. Це рекомендована функція безпеки.
Сама Elektra, якщо її налаштувати таким чином, все одно зможе використовувати середовище.
--elektra-reload-timeout=час_в_мс, ELEKTRA_RELOAD_TIMEOUT or /env/option/reload_timeout
Активуйте функцію на основі тайм-ауту, якщо час вказано в мс (а не дорівнює 0).
Внутрішні опції доступні в трьох різних варіантах:
1. як параметр командного рядка: --elektra-, які є НЕ пройшов через Exec(3)
дзвінки
2. як змінна середовища: ELEKTRA_. через які можна було б пройти Exec(3)
викликів, але видаляються clearenv(3) дзвінки.
3. як запис Elektra KDB: /env/option/, які є способом досягнення опції
бути увімкненим для кожної програми.
Напр kdb комплект user/env/option/clearenv "" щоб очистити середовище для всіх програм
запущений цим користувачем (принаймні зверніть увагу, що PATH слід встановити за допомогою kdb комплект
user/env/fallback/PATH "/ bin:/ usr / bin" потім).
Зауважте, що нульові ключі дорівнюють не встановленим параметрам. напр kdb комплект
system/env/option/debug "/tmp/elektra.log" та kdb комплект user/env/option/debug волі
активувати журналювання для системи, крім поточного користувача.
Контекстуальний Опції
--elektra% %= or /env/layer/
Додайте контекстну інформацію (= шар) % % з його цінністю . Зверніть увагу на це
%yam% попередньо визначено за допомогою argv [0] та %базова назва% з базова назва (argv[0]).
Значення можуть містити/утворювати ієрархії, напр --elektra%name%=додаток/профіль
Опції та цінності додатків
--elektra:ключ=значення, /env/override/ or /env/fallback/
встановіть ключ/значення як перевагу, тобто першим розглядати, як пояснюється в
ПОГЛЯД.
Ключі можуть містити / для формування ієрархій, напр --elektra:my/HOME=/шлях/до/дому.
ВИКОРИСТАННЯ
Щоб завжди використовувати середовище getenv Elektra, просто додайте вихід до файлу:
kdb elektrify-getenv | хвіст -1 | sudo tee -a /etc/ld.so.preload
це також можна зробити за допомогою Elektra:
sudo kdb mount /etc/ld.so.preload system/ld/preload рядок null
sudo kdb набір "system/ld/preload/new" `kdb elektrify-getenv | хвіст -1`
КОНТЕКСТ
Метадані контекст в специфікації може використовуватися для полегшення контекстно-залежного
пошук. У своєму метазначенні всі заміни % % буде замінено даним
контекстні параметри --elektra% %= та /env/layer/ ключі.
Наприклад, мати інший домашній каталог для будь-якого користувача та програми:
kdb встановити user/env/layer/user markus
kdb встановити user/users/markus/konqueror/HOME /home/download
kdb setmeta spec/env/override/HOME контекст /users/%user%/%name%/HOME
Використовуйте kdb-elektrify-getenv онлайн за допомогою служб onworks.net