Created
October 9, 2014 03:39
-
-
Save markottaviani/069db27a1adc1042debd to your computer and use it in GitHub Desktop.
monit conig for unicorn (broken)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
check process unicorn | |
with pidfile /var/www/RescueRails_staging/current/tmp/pids/unicorn.pid | |
start program = "/etc/init.d/unicorn_RescueRails_staging start" | |
as uid deploy and gid deploy | |
stop program = "/etc/init.d/unicorn_RescueRails_staging stop" | |
as uid deploy and gid deploy | |
if mem is greater than 300.0 MB for 1 cycles then restart # eating up memory? | |
if cpu is greater than 50% for 2 cycles then alert # send an email to admin | |
if cpu is greater than 80% for 30 cycles then restart # hung process? | |
group unicorn | |
check process unicorn_worker_5000 | |
with pidfile /var/www/RescueRails_staging/current/tmp/pids/unicorn.5000.pid | |
start program = "/bin/true" | |
stop program = "/etc/init.d/unicorn_RescueRails_staging kill_worker 5000" | |
if mem is greater than 350.0 MB for 1 cycles then restart | |
if cpu is greater than 80% for 30 cycles then restart | |
group unicorn_workers | |
check process unicorn_worker_5001 | |
with pidfile /var/www/RescueRails_staging/current/tmp/pids/unicorn.5001.pid | |
start program = "/bin/true" | |
stop program = "/etc/init.d/unicorn_RescueRails_staging kill_worker 5001" | |
if mem is greater than 350.0 MB for 1 cycles then restart | |
if cpu is greater than 80% for 30 cycles then restart | |
group unicorn_workers | |
check process unicorn_worker_5002 | |
with pidfile /var/www/RescueRails_staging/current/tmp/pids/unicorn.5002.pid | |
start program = "/bin/true" | |
stop program = "/etc/init.d/unicorn_RescueRails_staging kill_worker 5002" | |
if mem is greater than 350.0 MB for 1 cycles then restart | |
if cpu is greater than 80% for 30 cycles then restart | |
group unicorn_workers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
set -e | |
# Feel free to change any of the following variables for your app: | |
TIMEOUT=${TIMEOUT-60} | |
APP_ROOT=/var/www/RescueRails_staging/current | |
PID_DIR=$APP_ROOT/tmp/pids | |
PID=$PID_DIR/unicorn.pid | |
CMD="cd $APP_ROOT; bundle exec unicorn -D -c /var/www/RescueRails_staging/share | |
d/config/unicorn.rb -E staging" | |
AS_USER=deploy | |
set -u | |
OLD_PIN="$PID.oldbin" | |
sig () { | |
test -s "$PID" && kill -$1 `cat $PID` | |
} | |
oldsig () { | |
test -s $OLD_PIN && kill -$1 `cat $OLD_PIN` | |
} | |
workersig () { | |
workersig () { | |
workerpid="$APP_ROOT/tmp/pids/unicorn.$2.pid" | |
test -s "$workerpid" && kill -$1 `cat $workerpid` | |
} | |
run () { | |
if [ "$(id -un)" = "$AS_USER" ]; then | |
eval $1 | |
else | |
su -c "$1" - $AS_USER | |
fi | |
} | |
case "$1" in | |
start) | |
sig 0 && echo >&2 "Already running" && exit 0 | |
run "$CMD" | |
;; | |
stop) | |
sig QUIT && exit 0 | |
echo >&2 "Not running" | |
;; | |
force-stop) | |
sig TERM && exit 0 | |
echo >&2 "Not running" | |
;; | |
kill_worker) | |
workersig QUIT $2 && exit 0 | |
echo >&2 "Worker not running" | |
;; | |
restart|reload) | |
sig USR2 && echo reloaded OK && exit 0 | |
echo >&2 "Couldn't reload, starting '$CMD' instead" | |
run "$CMD" | |
;; | |
upgrade) | |
if sig USR2 && sleep 2 && sig 0 && oldsig QUIT | |
then | |
n=$TIMEOUT | |
while test -s $OLD_PIN && test $n -ge 0 | |
do | |
printf '.' && sleep 1 && n=$(( $n - 1 )) | |
done | |
echo | |
if test $n -lt 0 && test -s $OLD_PIN | |
if test $n -lt 0 && test -s $OLD_PIN | |
then | |
echo >&2 "$OLD_PIN still exists after $TIMEOUT seconds" | |
exit 1 | |
fi | |
exit 0 | |
fi | |
echo >&2 "Couldn't upgrade, starting '$CMD' instead" | |
run "$CMD" | |
;; | |
reopen-logs) | |
sig USR1 | |
;; | |
*) | |
echo >&2 "Usage: $0 <start|stop|restart|upgrade|force-stop|reopen-logs>" | |
exit 1 | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment