Назад | Перейти на главную страницу

не может получить доступ к исходным переменным внутри разделов сценария Upstart

Я пытаюсь использовать переменные, определенные в / 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