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.


Hier ist ein einfacheres Upstart-Skript, das Sie verwenden können. Upstart unterstützt jetzt alles, was Sie direkt tun müssen, ohne Skriptabschnitte oder zu viel eingebettete Shellsyntax. Dazu gehören Umgebungsvariablen ( env ), Arbeitsverzeichnis ( chdir ), Benutzer / Gruppe ( setuid , setgid ), Protokollbehandlung ( console log ) usw. Ihre Protokolldateien werden verarbeitet und in /var/log/upstart/your_app.log

description "start and stop the example express.js/node.js server"
author "John Doe <[email protected]>"

start on filesystem and started networking
respawn
console log
chdir /opt/your_app
setuid your_app_user
setgid your_app_user
env PATH=./node_modules/.bin:./node/bin:/usr/bin
env NODE_ENV=production
exec app/server.js

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.


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.


um NODE_ENV in heroku zu setzen:

heroku config:set NODE_ENV="production"




express