Я пытаюсь использовать переменные, определенные в / etc / environment, в сценарии выскочки.
Я могу экспортировать переменную в дочерний процесс, но по какой-то причине я не могу использовать их в самом разделе сценария выскочки.
Это работает:
script
. /etc/environment
export NODE_ENV
# node is able to read the NODE_ENV, wonderful!
/usr/local/bin/node /path/to/app/app.js
end script
Но если я попытаюсь ввести в строфу некоторую условную логику, это не удастся:
script
. /etc/environment
export NODE_ENV
# ${NODE_ENV} is not set inside the stanza
if [[ ${NODE_ENV} = 'production' ]]; then
# this will never run
/usr/local/bin/node /path/to/app/app.js
fi
end script
Есть идеи, как я могу получить доступ к переменным из исходных файлов внутри строф? Я действительно не хочу жестко кодировать этот материал!
Проблема в том, что вы используете "[[". Upstart запускает все сценарии через / bin / sh. Видеть:
Если вы посмотрите журнал заданий, вы должны увидеть там ошибку (оболочки):
sudo cat /var/log/upstart/your-job.log