I'm trying to setup upstart script to start/stop my node.js application.
Here is my upstart script:
#!upstart
description "node.js server"
author "marduk"
start on filesystem
stop on runlevel [!2345]
oom never
expect daemon
respawn
respawn limit 10 60
script
export HOME="/home/domains/srg-internal-dev"
echo $$ > /var/run/node-srg-internal-dev.pid
exec sudo -u www-data /usr/bin/node /home/domains/srg-internal-dev/api/server.js >> /home/domains/srg-internal-dev/node.log
2>&1
end script
pre-start script
echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /home/domains/srg-internal-dev/node.log
end script
pre-stop script
rm /var/run/node-srg-internal-dev.pid
echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /home/domains/srg-internal-dev/node.log
end script
I checked this script file:
$ init-checkconf /etc/init.d/nodesrg.conf
File /etc/init.d/nodesrg.conf: syntax ok
But when I try to start node I get:
$ start nodesrg
start: Unknown job: nodesrg
What I'm doing wrong? 😉
Best Answer
Try moving nodesrg.conf to
/etc/init
, not /etc/init.d. Init.d is where the SYSV-style scripts go, upstart configuration belongs in the former.Use
initctl list
to verify that it is showing up as an upstart service after you have moved the file.If it doesn't, you can use
initctl reload-configuration
and try again.