Skip to content

Instantly share code, notes, and snippets.

@matteocrippa
Last active December 6, 2016 11:49
Show Gist options
  • Save matteocrippa/5706448 to your computer and use it in GitHub Desktop.
Save matteocrippa/5706448 to your computer and use it in GitHub Desktop.
Node.js Upstart + Monit + Nodemon

UPSTART

sudo vi /etc/init/.conf

add inside:

description "<reponame>"
author "name"

env PROGRAM_NAME="<reponame>"

start on (local-filesystems and net-device-up IFACE=eth0)
stop on shutdown

respawn 
respawn limit 5 60

script
   export NODE_ENV=production
   echo $$ > /var/run/$PROGRAM_NAME.pid
   export NODE_PATH=$NODE_PATH:/usr/local/lib/node_modules
   cd /var/www/<reponame>
   exec /usr/local/bin/nodemon --exitcrash app.js 2>&1 >> /var/log/<reponame>.log
end script

pre-stop script
        rm /var/run/$PROGRAM_NAME.pid
end script

MONIT

sudo vi /etc/monit/monitrc

(on top only the first time) set daemon 120

(then new repo)

#<reponame>
check process affinity with pidfile "/var/run/<reponame>.pid"
  start program = "/sbin/start <reponame>"
  stop program = "/sbin/stop <reponame>"
  if failed port <repoPort> protocol HTTP
    request /
    with timeout 5 seconds
    then restart
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment