Para fazer a recuperação automática de serviços, você pode usar monit
. É um serviço bastante leve e fácil de usar.
Para instalar no Debian faça:
sudo apt-get install monit
Como instalar e configurar o programa
Quanto a configurá-lo, edite /etc/monit/monitrc
e reinicie o serviço.
Por exemplo, para monitorar se o daemon está em execução e se o serviço está respondendo nas portas correspondentes e configurar a recuperação automática para o PostgreSQL, RabbitMQ e mongoDB:
check process postgres with pidfile /var/postgres/postmaster.pid
group database
start program = "/etc/init.d/postgresql start"
stop program = "/etc/init.d/postgresql stop"
if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql
then restart
if failed host 192.168.1.1 port 5432 protocol pgsql then restart
check host mongodb with address localhost
start program = "/usr/bin/sudo /opt/database/mongo/bin/mongod"
stop program = "/usr/bin/sudo /usr/bin/pkill -f mongod"
if failed port 28017 protocol HTTP
request /
with timeout 10 seconds
then start
check process rabbitmq-server with pidfile /var/run/rabbitmq.pid
group rabbitmq
start program "/etc/init.d/rabbitmq-server start"
stop program "/etc/init.d/rabbitmq-server stop"
if failed port 5672 type tcp then restart
if 3 restarts within 3 cycles then timeout
Para mais serviços, consulte: Monit wiki
Monit também permite que você envie um e-mail em regras e atue na carga do servidor. Aconselho qualquer pessoa a investigar melhor.