Почему процесс не может видеть переменные среды, установленные в / etc / environment?

Я определил несколько переменных среды в / etc / environment, но процесс (сборка, запущенная TeamCity) не может видеть их значения. Я не знаю, что я делаю здесь неправильно ... это содержимое моего файла / etc / environment:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

CATALINA_BASE="/var/lib/tomcat7"
CATALINA_HOME="/usr/share/tomcat7"

ACTIVEMQ_HOME="var/lib/activemq"
ACTIVEMQ_BASE="var/lib/activemq"
ACTIVEMQ_CONF="var/lib/activemq/conf"
ACTIVEMQ_DATA="var/lib/activemq/data"
ACTIVEMQ_OPTS_MEMORY="-Xms128m -Xmx192m"

M2_HOME="/usr/share/maven3"
MAVEN_HOME="/usr/share/maven3"
JAVA_HOME="/usr/lib/jvm/java-8-oracle"

Сборка, запущенная TeamCity, использует бегун Maven, и который в какой-то момент пинает сборку муравья. Поскольку сборка не удалась, я использовал Ant для печати всех переменных среды в системе:

<!-- Provides all environment variables as Ant properties prefixed by "env.".
For example, CLASSPATH would be accessible in Ant as ${env.CLASSPATH} -->
<property environment="env"/>


<echo>List of all Environment Variables found in the system:</echo>
<echoproperties>
    <propertyset>
        <propertyref prefix="env."/>
    </propertyset>
</echoproperties>

Конечно, те, которые я установил в / etc / environment, не отображаются.

Агент сборки, работающий с этим, запускается с помощью приложения запуска Ubuntu, где я настроил его для запуска команды:

sudo -H -u administrator /bin/bash --login -c "~administrator/BuildAgent/bin/agent.sh start"

Может ли быть, что эта строка запускается до установки / etc / environment?

Если я сделаю echo $CATALINA_HOME, я увижу, что значение установлено правильно, но сборка по какой-то причине не видит его ...

ПРИМЕЧАНИЕ : Хотя я знаю, что это неправильный способ, я также попытался добавить export к объявлениям внутри /etc/environment, но безуспешно. Затем я удалил его.

ПРИМЕЧАНИЕ 2 : Конечно, я перезагрузил компьютер после внесения изменений в файл / etc / environment.

Я работаю на сервере 14.04 LTS с минимально установленным рабочим столом (ubuntu-desktop --no - install-рекомендует) и несколькими дополнительными функциями.

Любая помощь приветствуется, спасибо!

3
задан 25 June 2014 в 01:07

1 ответ

Читайте тщательно страница справочника раздел командной среды sudoers .

попытка-i опция: если -i опция sudo (начальный вход в систему) будет определена, то sudoers инициализирует среду независимо от значения env_reset. ДИСПЛЕЙ, ПУТЬ и переменные ТЕРМИНА остаются неизменными; ДОМОЙ, ПОЧТА, SHELL, ПОЛЬЗОВАТЕЛЬ и LOGNAME установлены на основе целевого пользователя. На AIX (и системы Linux без PAM), также включено содержание/etc/environment. Все другие переменные среды удалены. .

    sudo -u administrator -i "~administrator/BuildAgent/bin/agent.sh start"

при использовании аутентификации PAM, вот полезная ссылка: Различие между/etc/security/pam_env.conf и/etc/environment + делающий sudo pam_env.conf

чтения
2
ответ дан 25 June 2014 в 01:07

Другие вопросы по тегам:

Похожие вопросы: