无法访问 Upstart 脚本节中的源变量

无法访问 Upstart 脚本节中的源变量

我正在尝试在 upstart 脚本中使用 /etc/environment 中定义的变量。

我能够将变量导出到子进程,但由于某种原因,我无法在 upstart 脚本节本身中使用它们。

这有效:

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

有什么想法可以让我访问节内源文件中的变量吗?我真的不想对这些东西进行硬编码!

答案1

问题在于你使用了“[[”。Upstart 通过 /bin/sh 运行所有脚本。请参阅:

如果你查看作业日志,你应该会看到那里有一个(shell)错误:

sudo cat /var/log/upstart/your-job.log

相关内容