Using systemd to Run Your App
Ensuring the your node app is always running is important. In the old days of node we used to use node modules like forever
to do this, but now we have better options. systemd is an init system that's built into many different linux distributions. This guide will show you how to use systemd to restart your app if the process dies for some reason.
Using systemd scripts
To use systemd create a new file in the /etc/systemd/system
directory on your system called yourapp.service
. Inside of that file you can use the following template. You should replace everything in all caps with your own values, except where it says NODE_ENV.
[Service]
ExecStart=/usr/bin/node --use_strict /PATH/TO/YOUR/APP/bin/www
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=YOUR_APP
User=node
Group=node
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
Starting your app with systemd
Once you've created the systemd script you can now use the systemctl
command to start, stop or restart your app.
systemctl start yourapp.service
systemctl stop yourapp.service
systemctl restart yourapp.service
Once you've run the start command your app will continue to re-boot if the process dies until you run the stop command.