无法访问Upstart脚本节中的源variables

我试图在一个暴发户脚本中使用/ etc / environment中定义的variables。

我可以将variables导出到subprocess,但由于某些原因,我无法在暴发户脚本本身中使用它们。

这工作:

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 

任何想法如何我可以访问variables从源文件内的节? 我真的不想硬编码这个东西!

问题是你使用“[[”。 Upstart通过/ bin / sh运行所有脚本。 看到:

如果您查看作业日志,您应该看到(shell)错误:

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