2015-12-22 3 views
1

Можно ли установить переменные env в единицах systemd в соответствии с содержимым файла. Что-то вроде ENV = `cat somefile`?установить переменные env в systemd в соответствии с содержимым файла

Мне нужно установить путь к исполняемому файлу в соответствии с содержимым некоторого файла. Я не нашел информации о переменных в systemd, кроме переменных env, поэтому я стараюсь их использовать, но не повезло

Я попытался использовать Environment = 'ENV = `cat somefile`', но не повезло , Он просто устанавливает значение переменной `cat somefile`. Я пытался использовать cat и /bin/cat, но результат такой же.

ответ

0

Для этой цели существует специальная директива: EnvironmentFile. Вы должны поместить его в свой [Service] раздел как это:

[Service] 
EnvironmentFile=/etc/default/somefile 

Если файл не существует служба не запускается, так, чтобы иметь возможность запустить его, несмотря на наличие файла, который вы можете добавить ведущие - знак перед именем файла, например:

[Service] 
EnvironmentFile=-/etc/default/somefile 

Имейте в виду, что, хотя этот файл выглядит как shell script это не так и поведение переменных декларации sligtly отличается, в частности, вы не можете ссылаться на другие переменные объявление переменной.

Для получения более подробной информации, пожалуйста, прочтите EnvironmentFile и Environment. Command lines тоже может помочь.

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