Как я могу установить переменные окружения в моем сервисе Linux для Asterisk, даже если у него нет реального пользователя? - PullRequest
13 голосов
/ 05 октября 2010

Я создал службу linux, которая работает как демон (и запускается из /etc/init.d/X).Мне нужно установить некоторые переменные окружения, к которым может обращаться приложение.

Вот сценарий.Приложение представляет собой набор сценариев Perl AGI, которые зависят (и поэтому должны запускаться как) от пользователя звездочки, но звездочка не имеет оболочки.В идеале я бы просто установил это в / home / asterisk / .bashrc , но этого не существует для звездочки.

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

Ответы [ 2 ]

23 голосов
/ 05 октября 2010

Либо установите их в сценарии запуска (/etc/init.d/yourdaemon), либо вставьте в этот файл строку, которая выглядит следующим образом:

. /etc/yourdaemon.env

и поместите переменные среды в этот файл, используя синтаксис export VAR=value.В системах, похожих на Red Hat, я считаю, что правильным местом для такого файла является /etc/sysconfig.В Debian / Ubuntu, похоже, для этой цели есть /etc/default.

0 голосов
/ 19 июля 2018

Если выбранный вами дистрибутив сейчас использует systemd, попробуйте systemctl edit --full asterisk.service и рассмотрите EnvironmentFile и Environment

Эти файлы обычно находятся здесь: /etc/systemd/system/myservice.service например cron.service

...