В разделе Env Upstart не устанавливаются переменные среды (например, NODE_ENV) для приложения Node.js

У меня есть сценарий 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 отлично работает.

27
задан Chris F 17 January 2012 в 22:55
поделиться

1 ответ

Это работает для меня, чтобы установить переменные 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
1
ответ дан 28 November 2019 в 05:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: