linux start Setzen von NODE_ENV für node.js+expressjs Anwendung als Daemon unter Ubuntu




ubuntu run node js as service (4)

Ich habe den Daemon mit diesen Anweisungen in Ordnung gebracht: http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/

Da dies jedoch die Anwendung im DEVELOPMENT-Modus startet, wird die Protokolldatei mit Debug-Protokollen von socket.io gespammt.

Ich habe versucht, den NODE_ENV in der upstart-conf-Datei auf Produktion einzustellen, hatte aber keinen Erfolg.

script
    export HOME="/root"
    export NODE_ENV=production

    exec /usr/local/bin/node /where/yourprogram.js >> /var/log/node.log 2>&1
end script

hat nicht funktioniert.


Ubuntu / Upstart sind in der Frage aufgelistet, aber ich habe hier nach Antworten auf einen FreeBSD / System Shell Daemon gesucht.

Die Zeile unten startete die App in der "Entwicklungsumgebung":

exec node path/to/start/script.js

Die Zeile unten startete die App in "production" -Umgebung:

NODE_ENV=production exec node path/to/start/script.js

Ich brauchte eine Weile, um das herauszufinden, also dachte ich, ich würde es teilen.


Versuchen

exec NODE_ENV=production /usr/local/bin/node /where/yourprogram.js >> /var/log/node.log 2>&1

In meinem Setup sudoing ich als ein geringerer Benutzer, so ist es

exec sudo -u some-user NODE_ENV=production /usr/local/bin/node /where/yourprogram.js >> /var/log/node.log 2>&1

und da es einen anderen Benutzer hervorbringt, hat es wahrscheinlich eine andere Umgebung. Ich bin ein Neuling hier, aber es funktioniert für mich.


um NODE_ENV in heroku zu setzen:

heroku config:set NODE_ENV="production"

Wenn Sie node.js in der Produktion verwenden, empfehle ich Ihnen, forever.js zu verwenden, um Ihr Programm https://github.com/nodejitsu/forever dämonisieren

Installiere npm: [sudo] npm install forever -g

export NODE_ENV=production and run forever start app.js Sie können auch angeben, wo Fehler- und Stdout-Protokolle abgelegt werden sollen.





express