Difference between revisions of "Make your NodeJS app run as a service in Linux"
Line 5: | Line 5: | ||
# Add the service in the folder /etc/systemd/system/: | # Add the service in the folder /etc/systemd/system/: | ||
+ | # | ||
+ | # Nummerierter Listeneintrag | ||
+ | # | ||
+ | # Nummerierter Listeneintrag | ||
+ | # Nummerierter Listeneintrag | ||
<pre>sudo vim mynodejsapp.service</pre> | <pre>sudo vim mynodejsapp.service</pre> | ||
<pre>[Unit] | <pre>[Unit] |
Revision as of 17:04, 28 March 2020
This is an example where you can make your NodeJS app (also MEAN or MERN stack app) run as a service in your Linux server. Here we create the app "My NodeJS App".
- Firtly, add this to the first line of your main nodeJS app file. Here it is the file server.js:
#!/usr/bin/env node
- Add the service in the folder /etc/systemd/system/:
- Nummerierter Listeneintrag
- Nummerierter Listeneintrag
- Nummerierter Listeneintrag
sudo vim mynodejsapp.service
[Unit] Description=My NodeJS App [Service] ExecStart=/var/www/apps/mynodejsapp/server.js Restart=always User=nobody Group=nogroup Environment=PATH=/usr/bin:/usr/local/bin Environment=NODE_ENV=production WorkingDirectory=/var/www/apps/mynodejsapp [Install] WantedBy=multi-user.target
If you have Red Hat (RHEL) or Fedora as an OS, then you have to use "nobody" as a group. "nogroup" is used in Ubuntu and Debian.
- Set execute permission
chmod +x /var/www/apps/mynodejsapp/server.js
- To start the app automatically on system boot:
sudo systemctl enable mynodejsapp
- Start the app
sudo systemctl start mynodejsapp
- Check the status of your app, restart, stop, etc. with the command "systemctl":
sudo systemctl status mynodejsapp
sudo systemctl stop mynodejsapp