У меня есть сценарий Upstart для моего сервера, который выглядит следующим образом:
description "myapp node.js server"
start on runlevel [2345]
stop on shutdown
env NODE_ENV=production
env CUSTOM=somevalue
exec sudo -u nodejs /usr/local/bin/node /opt/myapp/app.js >> /var/log/nodejs/myapp.log 2>&1
post-start script
NODE_PID=`status myapp | egrep -oi '([0-9]+)$' | head -n1`
echo $NODE_PID > /var/run/nodejs/myapp.pid
end script
Однако приложение не видит, что NODE_ENV установлен в рабочий режим. Фактически, если я использую console.log (process.env) в приложении, я не вижу NODE_ENV или CUSTOM. Есть идеи, что происходит?
Кстати, NODE_ENV = production node app.js отлично работает.
Это работает для меня, чтобы установить переменные env узла в upstart.
#!upstart
start on runlevel [2345]
stop on runlevel [016]
respawn
script
echo $ > /var/run/app.pid
exec sudo NODE_ENV=production /opt/node/bin/node /opt/myapp/app.js >> /var/log/app.sys.log 2>&1
end script