###The Issue With Forever Forever is great for running node services, with a minor setback: the word "forever" doesn't apply to system reboots.
###The solution, run node apps as a system service logged in as root
vim /etc/init/node-app.conf
Contents for node-app.conf
start on filesystem and started networking
respawn
chdir /home/deploy/node-app #deployment directory
env NODE_ENV=production
env PORT=3000
exec /usr/local/bin/node server/cluster.js #start command - no forever needed, if it fails, the service restarts
SUCCESS! Now the app runs on reboot! You can also control the app as a service
service node-app start #node-app is filename of service.conf file
service node-app stop
service node-app restart #run this one command on deploy to either start | restart the service
###So how does my deploy script change?
Run visudo to give deploy
user permission to run only the node service without a password
echo "deploy ALL=(root) NOPASSWD: /sbin/restart node-app" >> /etc/sudoers
#this can be edited later by running visudo as root user
Now, run this with your deploy script as your deploy user
sudo restart node-app
Hi,
I have below code in my app.js file
http.createServer(app).listen(config.port, config.address, function() {
console.log("Express server listening on %s:%d in %s mode", config.address, config.port, app.settings.env);
});
How can i allocated different ports from above script and run multiple instance on different ports