Skip to content

Instantly share code, notes, and snippets.

@valda
Created December 19, 2009 09:29
Show Gist options
  • Save valda/260023 to your computer and use it in GitHub Desktop.
Save valda/260023 to your computer and use it in GitHub Desktop.
#!/bin/sh
PATH=/bin:/usr/bin:/command
check_nginx () {
local -a nginx_stats
nginx_stats=(`svstat /service/nginx | cut -d ' ' -f 2,5`)
if [ ${nginx_stats[0]} != "up" ]; then
echo Nginx is dead.
return 1
fi
if [ ${nginx_stats[1]} -lt 10 ]; then
echo Nginx is warm-up.
return 1
fi
echo Nginx is running.
return 0
}
check_passenger () {
local passenger_stats
passenger_stats=`ps ax | grep 'PassengerNginxHelperServe[r]'`
if [ $? == 0 ]; then
echo PassengerNginxHelper is running.
return 0
else
echo PassengerNginxHelper is dead.
return 1
fi
}
while true; do
check_nginx
if [ $? == 0 ]; then
check_passenger
if [ $? != 0 ]; then
sleep 2
check_nginx
if [ $? == 0 ]; then
echo SIGTERM send to nginx.
svc -t /service/nginx
fi
fi
sleep 5
else
sleep 30
fi
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment