i got the daemon working alright with these instructions: http://kevin.vanzonneveld.net/techblog/article/run_nodejs_as_a_service_on_ubuntu_karmic/
but because this starts the application in DEVELOPMENT mode, the log file gets spammed with socket.io debug logs.
i tried setting the NODE_ENV to production in the upstart-conf-file but had no success.
script
export HOME="/root"
export NODE_ENV=production
exec /usr/local/bin/node /where/yourprogram.js >> /var/log/node.log 2>&1
end script
didn't work.
to set NODE_ENV in heroku use:
If you are using node.js in production, I recommend you use forever.js to daemonize your program https://github.com/nodejitsu/forever
Install using npm:
[sudo] npm install forever -g
export NODE_ENV=production
and runforever start app.js
You can also specify where to put error and stdout logs.Ubuntu/Upstart are listed in the question, but I got here while looking for answers for a FreeBSD/system shell daemon.
The line below started the app in "development" environment:
The line below started the app in "production" environment:
It took me a while to figure this out, so I thought I'd share.
Try
In my setup I'm sudoing as a lesser user, so it's
and since it's spawning off another user it probably has another environment. I'm a newbie here, but it works for me.
Here's a simpler upstart script you can use. Upstart now supports everything you need to do directly without script sections or too much embedded shell syntax. This includes environment variables (
env
), working directory (chdir
), user/group (setuid
,setgid
), log handling (console log
), etc. Your log files will be handled and rotated into/var/log/upstart/your_app.log