I made a rather simple startup script for my node.js program that should run on startup:
start on startup
stop on shutdown
script
exec sudo -u max WEBSITES_DIR=/home/max/websites/ /usr/local/bin/node /home/max/websites/server.js 2>&1 >> /var/log/node.log
end script
If I use:
sudo start my-program
it works, but when I reboot the machine I get the error message:
init: my-program main process (325) terminated with status 2
Anybody any idea on how to debug this?
The
startup
event is the very first event that gets emitted in the Upstart bootup process. There are all kinds of things that won't have happened yet - the root filesystem will still be mounted read-only, networking hasn't been initialized, etc.I suspect that the job is exiting quickly because all of its dependencies (explicit or implicit) aren't initialized yet. I'd change the start condition to something like
At least then you'll be able to write to your logfile.
As a side note, it looks like you reversed your output redirection arguments - you actually meant
>> /var/log/node.log 2>&1
. Using2>&1
means "take whatever is currently fd 1, and make fd 2 the same thing", but you haven't changed what stdout is yet.HiMax,
Startup node.js on Ubuntu server
more /etc/init/noded.conf
Ubuntu upstart file at
/etc/init/noded.conf
:You have already
/etc/init.d/noded
. You can edit/etc/init/noded.conf
==> startup booting:In my case, the similar error was caused by trying to start a script from my upstart script, that didn't actually exist. It turned out that I forgot to commit and push the script.