tec*_*ker 3 bash upstart source 12.04
我正在尝试使用/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
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试在该节中引入一些条件逻辑,那么它将失败:
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
Run Code Online (Sandbox Code Playgroud)
任何想法如何从节内的源文件访问变量?
这一行:
if [[ ${NODE_ENV} = 'production' ]]; then
Run Code Online (Sandbox Code Playgroud)
在符合 POSIX 的 shell 中无效,但似乎是有效的 bash。我没有看到 upstart 在script
任何地方记录的节中默认使用的 shell ,但假设它使用/bin/sh
是合理的,这不是 Debian/Ubuntu 系统上的 bash。
尝试:
if [ "${NODE_ENV}" = 'production' ]; then
Run Code Online (Sandbox Code Playgroud)
反而。
归档时间: |
|
查看次数: |
3925 次 |
最近记录: |