/etc/environment
我正在尝试使用在 12.04 上运行的 upstart 脚本中定义的变量。
我能够将变量导出到子进程,但由于某种原因,我无法在 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
这一行:
if [[ ${NODE_ENV} = 'production' ]]; then
在符合 POSIX 标准的 shell 中无效,但似乎在 bash 中有效。我没有在script
任何地方的节中看到 upstart 默认使用的 shell,但可以合理地假设它使用/bin/sh
,这不是 Debian/Ubuntu 系统上的 bash。
尝试:
if [ "${NODE_ENV}" = 'production' ]; then
反而。