lifeguard
v0.4.2
Published
Monitor and restart processes on deployment.
Downloads
1
Readme
===
,-. ,-.,---.,---. ,--, .-. .-. .--. ,---. ,'|"\
| | |(|| .-'| .-' .' .' | | | | / /\ \ | .-.\ | |\ \
| | ()| -.|
-. | | __ | | | |/ /__\ | -'/ | | \ \
| | | || .-'| .-' \ \ ( _)| | | || __ || ( | | \ \
|
--. | || | | --.\
-) )| -')|| | |)|| |\ \ /(|
-' /
|( __.'-')\| /( __.')\____/
---()|| ()|| )(__)`--'
() () () () ()
lifeguard is yet-another-process-launcher, but with a few extra tricks up its
sleeve. It was designed to run processes that accompany apps that are deployed
via Capistrano, so it supports watching for
changes to tmp/restart.txt
. It also supports being started up before the
process it is configured to run has been deployed, allowing it to be provisioned
as a service before the app deployment.
Optionally, lifeguard can connect to Campfire or Slack to mention restarts.
Usage
If you want to use the campfire integration, you need to define these environment variables:
CAMPFIRE_ACCOUNT
CAMPFIRE_TOKEN
CAMPFIRE_ROOM
If you want to use the Slack integration, you need to define these environment variables:
SLACK_TEAM
SLACK_TOKEN
SLACK_CHANNEL
To run lifeguard:
lifeguard --dir /app/dir/current --cmd "bundle exec resque-pool -E production" --title "ResquePool-production"
Arguments:
--dir
: Tells lifeguard what directory to watch for a tmp/restart.txt file. If specified, lifeguard will not run the command until {dir}/tmp/restart.txt exists.--cmd
: The command lifeguard should run. If--dir
was specified, working directory will be changed before starting.--title
: Lifeguard will use title in Campfire notifications and will set the process title to "lifeguard:{title}"--handoff
: For Node.js apps, lifeguard can run in a special mode that allows live handoffs between old and new instances, allowing them to transfer state and listening sockets. For more, see the StreamMachine project.
Installing
You can install lifeguard globally via npm:
npm install -g lifeguard
Handoffs
Lifeguard can coordinate with a compatible Node.js application to allow seamless restarts that pass existing connections over to the new process.
More documentation to come.
Who?
lifeguard is written by Eric Richardson [email protected] for Emcien.