Skip to content

Instantly share code, notes, and snippets.

@goodwill
Created April 7, 2016 10:11
Show Gist options
  • Save goodwill/2c21fde958dc49323e6ccf6c9cd3dd2c to your computer and use it in GitHub Desktop.
Save goodwill/2c21fde958dc49323e6ccf6c9cd3dd2c to your computer and use it in GitHub Desktop.
Running multiple node app, the puma manager way
description "Manages the set of node-app-server processes"
# This starts upon bootup and stops on shutdown
start on runlevel [2345] and started mongod
stop on runlevel [06]
# Set this to the number of Puma processes you want
# to run on this machine
env NODE_LIST="/etc/node-app-manager.list"
pre-start script
for i in `cat $NODE_LIST`; do
app=`echo $i | cut -d , -f 1`
start_cmd=`echo $i | cut -d , -f 2`
inst_name=`echo $i | cut -d , -f 3`
logger -t "node-app-manager" "Starting $inst_name"
start node-app-server app=$app start_cmd=$start_cmd inst_name=$inst_name
done
end script
/var/bitcore-wallet-service,locker/locker.js,bws-locker
/var/bitcore-wallet-service,messagebroker/messagebroker.js,bws-messagebroker
/var/bitcore-wallet-service,bcmonitor/bcmonitor.js,bws-bcmonitor
/var/bitcore-wallet-service,emailservice/emailservice.js,bws-emailservice
/var/bitcore-wallet-service,pushnotificationsservice/pushnotificationsservice.js,bws-pushnotification
/var/bitcore-wallet-service,fiatrateservice/fiatrateservice.js,bws-fiatrate
/var/bitcore-wallet-service,bws.js,bws-core
description "Node App Server"
stop on (stopping node-app-manager or runlevel [06])
setuid webuser
setgid webuser
respawn
respawn limit 3 30
instance ${inst_name}
console log
script
exec /bin/bash <<‘EOT’
source /home/webuser/.nvm/nvm.sh
cd $app
logger -t node-app-manager "Starting server: $inst_name"
exec node $start_cmd
EOT
end script
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment