В rc.subr ${name}_env
указано следующее для настройки переменной среды:
${name}_env A list of environment variables to run command
with. This will be passed as arguments to
env(1) utility.
Поэтому я попробовал использовать его следующим образом, через мой rc.conf для моего демона с именем /etc/rc.d/mydaemon
.
в /etc/rc.conf
:
mydaemon_env="MYD_ROOT"
При запуске возникает ошибка:
# root @ rahul in /etc/rc.d [10:52:49]
$ service mydaemon onestart
Starting mydaemon.
env: MYD_ROOT: No such file or directory
/etc/rc.d/mydaemon: WARNING: failed to start mydaemon
Может ли кто-нибудь подсказать, что мне не хватает?
решение1
Предполагается, что он будет в формате NAME=VALUE
.
mydaemon_env="MYD_ROOT=value"
решение2
Недавно в команду был добавлен новый флаг service
. С помощью этого -E
флага теперь можно устанавливать переменные окружения при запуске демона с помощью service
команды. Новый флаг будет доступен в FreeBSD 14.0 и более поздних версиях. По состоянию на 2023-09-04 он не был объединен обратно в старые стабильные ветки.
Некоторые ссылки:
- Коммит, представляющий
-E
флаг:https://cgit.freebsd.org/src/commit/usr.sbin/service/service.sh?id=194e059bb80334e6f4f791a186015b20d7f6f4b8