Environment: CentOS 8, Node.js, Digital Ocean Droplet
My Systemd setup starts a node app with the following command. It works as expected.
$ sudo systemctl start myapp
File 1: /etc/systemd/system/myapp.service
[Unit]
Description = My App
After = network.target
[Service]
ExecStart = /root/start-myapp.sh
Restart=on-failure
[Install]
WantedBy = multi-user.target
File 2: /root/start-myapp.sh
#!/bin/sh
/usr/bin/node /srv/myapp/app.js
However when I'm not using Systemd I normally start my app with Node Package Manager using the command, npm start
. I'd rather have the Systemd unit also start the app with npm start
.
Unfortunately it threw an error when I changed app.js
to npm start
in /root/start-myapp.sh
,
/usr/bin/node /srv/myapp/npm start
I made another attempt by switching the path from node
to npm
but it produced the same error.
/usr/bin/npm /srv/myapp/npm start
Question: How do I get my Systemd unit file to start my app with the command npm start
?