J'essaie d'utiliser les variables définies dans /etc/environment
dans un script confirmé démarrant le 12.04.
Je suis en mesure d'exporter la variable dans le processus enfant, mais pour une raison quelconque, je ne suis pas en mesure de les utiliser dans la strophe de script Upstart elle-même.
Cela marche:
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
Mais si j'essaie d'introduire une logique conditionnelle dans la strophe, elle échouera:
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
Des idées sur la façon dont je peux accéder aux variables à partir de fichiers sourcés à l'intérieur des strophes?
Cette ligne:
if [[ ${NODE_ENV} = 'production' ]]; then
n'est pas valide dans un shell conforme à POSIX, mais semble être un bash valide. Je ne vois pas le shell que le parvenu utilise par défaut dans script
strophes documentées nulle part, mais il est raisonnable de supposer qu'il utilise /bin/sh
, qui n'est pas bas sur les systèmes Debian/Ubuntu.
Essayer:
if [ "${NODE_ENV}" = 'production' ]; then
au lieu.