On Sat, Feb 18, 2012 at 8:49 AM, Angelo Chen <[email protected]>wrote:

> Hi,
>
> with following upstart script, I can do: /sbin/start testjs and /sbin/
> stop testjs, but it will not start when boot up pc, why?
>
> #!upstart
> description "node.js server"
> author      "jmmmm"
>
> start on startup
> stop on shutdown
>
> script
>    export HOME="/root"
>
>    exec /usr/local/bin/node /root/test.js 2>&1 >> /var/log/node.log
> end script
>
> --
> Job Board: http://jobs.nodejs.org/
> Posting guidelines:
> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
> You received this message because you are subscribed to the Google
> Groups "nodejs" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/nodejs?hl=en?hl=en
>


What mscdex said.  Upstart is a wonderful tool: http://upstart.ubuntu.com/
Here's an example of how I use upstart on Ubunutu.  The following script is
coincidentally very similar to one by Tim Smart (
http://howtonode.org/deploying-node-upstart-monit) which I'd like to
acknowledge here even if all it proves is that most upstart scripts look
very similar.

*file: /etc/init/node-webapp.conf*
# node-webapp service

description "node.js webapp"
author      "cmundi"

emits node-webapp-up
emits node-webapp-down

start on (net-device-up
          and local-filesystems
          and runlevel [2345])

stop on runlevel [!2345]

respawn
respawn limit 10 5

script
    export HOME="/home/cmundi/node/apps"
    echo $$ > /var/run/node-webapp.pid
    exec sudo -u root /usr/local/bin/node $HOME/webapp.js >>
/var/log/node-webapp.sys.log 2>&1
end script

pre-start script
    echo "`date -u` Starting" >> /var/log/node-webapp.sys.log
end script

post-start script
    initctl emit node-webapp-up
end script

pre-stop script
    echo "`date -u` Stopping" >> /var/log/node-webapp.sys.log
    rm /var/run/node-webapp.pid
end script

post-stop script
    initctl emit node-webapp-down
end script

A few things to notice.  I like to start and stop on specific runlevel
events instead of higher-level 'startup' and 'shutdown' events, just as a
matter of personal taste.  Call me crazy, but I also like to make sure
networking is up and local filesystems are mounted before I try to start
node.  I also emit my own -up and -down events so that other upstart jobs
can be triggered, for example monitoring the server, providing a test
harness or mock database or whatever.  (But naturally you must not assume
that your node app is listening just because node started!)

There are a few threads and blogs (including Tim Smart's, linked above)
which suggest using monit instead of the respawn capability of upstart.
Monitoring server health is good.  And although I use upstart to respawn a
completely dead server, I prefer not to automatically restart a running but
nonresponsive server.  Although I can't do much about a dead server, except
hope that my logs were informative, I often can learn a lot from a
non-responsive server by watching/probing it while it is struggling.  ymmv.

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to