У меня есть служба nodeJS, построенная с использованием NodeJs. Для этой службы требуется передать некоторые переменные среды. Кроме того, я создал файл systemd для его запуска из systemctl. По некоторым странным причинам служба, при запуске с помощью systemctl, не считывает переменные среды. Например, одна переменная среды - это HOST, которая содержит IP-адрес, к которому будет привязано приложение парусов. Однако, если я запускаю службу с помощью подъема парусов или узла app.js, он считывает переменные среды. Вот файл юнита:
[Unit]
Description=project
[Service]
ExecStart=/usr/bin/node /mnt/project/app.js
Restart=always
StandardOutput=syslog
[Install]
WantedBy=multi-user.target
Я пробовал все. Я добавил переменные среды в / etc / environment и указал на него файл блока, я также добавил их в файл блока, но ничего не получилось.
Это происходит потому, что блок в systemd инкапсулирован из остальной части системы. Вы пытались установить его прямо в файле блока следующим образом:
Environment = "FOO = foo" 'BAR = bar'Затем переменные FOO и BAR доступны в вашем устройстве , Например, если это мой ExecuteStart:
Environment = "FOO = foo" 'BAR = bar'
ExecStart = / bin / echo $ FOO $ {FOO} $ {BAR}
foo foo barС опцией Environment сверху это приведет к следующему результату:
Альтернатива делайте это через файл конфигурации среды. Для этого вы можете прочитать документацию по Fedora:
http://fedoraproject.org/wiki/Packaging:Systemd#EnvironmentFiles_and_support_for_.2Fetc.2Fsysconfig_files
Эта ссылка содержит некоторые полезные примеры с докере :
Это происходит потому, что блок в systemd инкапсулирован из остальной части системы. Вы пытались установить его прямо в файле блока следующим образом:
Environment = "FOO = foo" 'BAR = bar'Затем переменные FOO и BAR доступны в вашем устройстве , Например, если это мой ExecuteStart:
Environment = "FOO = foo" 'BAR = bar'
ExecStart = / bin / echo $ FOO $ {FOO} $ {BAR}
foo foo barС опцией Environment сверху это приведет к следующему результату:
Альтернатива делайте это через файл конфигурации среды. Для этого вы можете прочитать документацию по Fedora:
http://fedoraproject.org/wiki/Packaging:Systemd#EnvironmentFiles_and_support_for_.2Fetc.2Fsysconfig_files
Эта ссылка содержит некоторые полезные примеры с докере :