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.