Как установить переменные среды, которые будут использоваться службой, работающей на машине Linux - PullRequest
0 голосов
/ 31 марта 2020

my-service, работающий на машине Linux, должен быть снабжен переменной окружения ENV_VAR. Это работает, если я объявлю эту переменную в файле etc/environment с:

vim /etc/environment , добавив дополнительную строку:

ENV_VAR="My Value"

И, наконец, перезагрузим ее :

source /etc/environment

Затем я могу перезапустить my-service с:

sudo service my-service stop sudo service my-service start

Интересно, смогу ли я избежать объявления Переменная ENV_VAR в файле etc/environment. Есть ли способ объявить переменную окружения, видимую service, используя любой другой подход?

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Поэтому, если вы хотите добавить Переменная среды , вы можете сделать несколько вещей:

  1. Редактировать /etc/enviroment (Все пользователи)
  2. Редактировать /etc/profile (Все пользователи)
  3. Редактировать ~/.bashrc (Только вы)

Редактирование любого из файлов, указанных выше, гарантирует, что при каждом запуске компьютера ваша среда будет иметь доступ к этим переменным.

Вы также можете редактировать my-service или файл, который включает my-service (как предложено Cyrus ). Это означает, что если у вас есть доступ на запись к исходному коду для программы my-service или к файлу, который включает в себя my-service (вызывает до его собственного выполнения), вы можете добавить строку в этот файл.

You также даже не нужно редактировать файл! Каждый раз, когда вы запускаете терминал, вы можете вносить живые изменения в среду, просто введя текст, который вы добавили бы в один из файлов, упомянутых выше, в качестве команды. Это изменение среды будет похоже на изменение ~/.bashrc, поскольку оно будет работать только для текущего пользователя. Если вы планируете sudo <command>, вам сначала нужно sudo su переключиться на пользователя с правами суперпользователя, а затем изменить среду.

Если вы редактируете файл или вводите команду, я предлагаю использовать следующую строку кода. Команда export обеспечит доступ к переменной среды my-service.

export ENV_VAR=value

Смежный вопрос

1 голос
/ 31 марта 2020

Есть ли способ объявить переменную среды, которая будет видна службе, используя любой другой подход?

Если ваша система использует systemd для управления службой, из systemd .exe c документация раздел "Окружение" вы можете добавить в свой сервисный файл:

Environment="ENV_VAR=My Value"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...