The pid file name (hardcoded) is /var/tmp/rack.X.pid, where X denotes the instance number.
Add this line to your Gemfile:
gem 'passenger_monit', :group => :production
Example Monit configuration
check process instance1 with pidfile /var/tmp/rack.1.pid group web start program = "/bin/true" with timeout 30 seconds stop program = "/bin/sh -c 'kill `cat /var/tmp/rack.1.pid`'" if totalmem > 120.0 MB for 5 cycles then restart if changed pid 2 times within 2 cycles then alert if changed ppid 2 times within 2 cycles then alert
Bugs and missing features
- Only tested with nginx
- The pid file location is hardcoded
- Sometimes there are more passenger instances in the air than anticipated, so when one goes down, there might be first pid file missing, e.g.: from [rack.1.pid, rack.2.pid] to [rack.1.pid, rack.2.pid, rack.3.pid] to [rack.2.pid, rack.3.pid] - monit will complain that the first instance is missing.
Copyright (c) 2011 Roman Shterenzon, released under the MIT license