How can I automatically start a node.js application in Amazon Linux AMI on aws?
Is there a brief guide to explain how to start up a application when the instance starts up and running? If it were one of the services installed through
yum then I guess I can use
/sbin/chkconfig to add it to the service. (To make it sure, is it correct?)
However, I just want to run the program which was not installed through
yum. To run node.js program, I will have to run script
sudo node app.js at home directory whenever the system boots up.
I am not used to Amazon Linux Ami so I am having little trouble finding a 'right' way to run some script automatically on every boot.
Is there an elegant way to do this?
One way is to create an upstart job. That way your app will start once Linux loads, will restart automatically if it crashes, and you can start / stop / restart it by
sudo start yourapp /
sudo stop yourapp /
sudo restart yourapp.
Here are beginning steps:
1) Install upstart utility (may be pre-installed if you use a standard Amazon Linux AMI):
sudo yum install upstart
sudo apt-get install upstart
2) Create upstart script for your node app:
/etc/init add file
yourappname.conf with the following lines of code:
#!upstart description "your app name" start on started mountall stop on shutdown # Automatically Respawn: respawn respawn limit 99 5 env NODE_ENV=development # Warning: this runs node as root user, which is a security risk # in many scenarios, but upstart-ing a process as a non-root user # is outside the scope of this question exec node /path_to_your_app/app.js >> /var/log/yourappname.log 2>&1
3) start your app by
sudo start yourappname