#ubuntu #environment-variables #startup
#ubuntu #среда-переменные #запуск
Вопрос:
Я хотел бы установить пару переменных среды на компьютере с Ubuntu (10.04), но я хочу создать их значение с помощью скрипта, очень похожего:
export THE_ENV_VAR=$(script_to_execute_and_use_stdout_from)
Я пробовал устанавливать /etc/environment
, но это только дословно копирует rhs
Я пытался выполнить скрипт /etc/init.d/
при запуске, но, похоже, это не работает.
Идеи?
Комментарии:
1. Вы рассматривали возможность задать Ubuntu этот вопрос?
2. @Nano: Нет, спасибо за подсказку.
3. В любом случае, почему бы не попытаться установить ее на
.bashrc
? Я бы сделал что-то вродеexport THE_ENV_VAR='script_to_execute_and_use_stdout_from_within_backticks'
4. @Nano: это установит его только для сеансов bash, и мне нужно, чтобы env. variables были установлены для всех пользователей (в частности, www-data)
5. @Nano: Кроме того, выполнение скрипта, получающего значения для env. vars, занимает некоторое время, поэтому я хочу сделать это во время загрузки, только один раз.
Ответ №1:
Вам нужно записать свой оператор экспорта в /etc/bash.bashrc
file, который представляет собой общесистемный .bashrc
файл, который будет устанавливать среды для всех пользователей системы 🙂
Редактировать: один из способов сделать это — заполнить файл кэша во время загрузки и позволить пользовательским скриптам считывать из этого кэшированного файла.
Комментарии:
1. Да, но выполняется ли это во время загрузки или когда пользователь подключается через ssh? Настройка переменных включает в себя команды, выполнение которых занимает значительное время, поэтому я бы хотел, чтобы они были установлены во время загрузки.
2. Это выполняется, когда пользователь подключается через ssh (сеансы bash corse)
3. Спасибо, но это не то, что мне нужно. Интересно, что, похоже, нет способа добиться этого.
4. Вот грязный способ сделать это: добавьте свой скрипт «script_to_execute_and_use_stdout_from» для загрузки и заставьте его выводить результаты в файл, затем, когда пользователь подключается, он считывает результат из этого файла вместо выполнения скрипта, это должно быть намного быстрее.
5. Спасибо, m0ntassar, именно так я и делаю сейчас, у меня есть своего рода кэш результата, так что первый подключающийся пользователь заполняет кеш. При последующих вызовах это происходит быстро. Не думал запускать это во время загрузки, но вы правы, все должно работать нормально 🙂