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
You can use forever-service for provisioning node script as a service and automatically starting during boots. Following commands will do the needful,
npm install -g forever-service forever-service install test
This will provision app.js in the current directory as a service via forever. The service will automatically restart every time system is restarted. Also when stopped it will attempt a graceful stop. This script provisions the logrotate script as well.
Github url: https://github.com/zapty/forever-service
As of now forever-service supports Amazon Linux, CentOS, Redhat support for other Linux distro, Mac and Windows are in works..
NOTE: I am the author of forever-service.