Для автоматического восстановления сервисов можно использовать monit
. Это довольно легкий и простой в использовании сервис.
Чтобы установить его в Debian, сделайте:
sudo apt-get install monit
How To Install and Configure Monit
Что касается его настройки, вы отредактируете /etc/monit/monitrc
и перезапустите службу.
Например, чтобы проконтролировать, запущен ли демон, отвечает ли служба на соответствующие порты, и настроить автоматическое восстановление для PostgreSQL, RabbitMQ и mongoDB:
check process postgres with pidfile /var/postgres/postmaster.pid группа базы данных start program = "/etc/init.d/postgresql start" остановить программу = "/etc/init.d/postgresql stop" if failed unixsocket /var/run/postgresql/.s.PGSQL.5432 protocol pgsql затем перезапустить если не работает хост 192.168.1.1 порт 5432 протокол pgsql, то перезапустить проверка хоста mongodb с адресом localhost start program = "/usr/bin/sudo /opt/database/mongo/bin/mongod" остановить программу = "/usr/bin/sudo /usr/bin/pkill -f mongod" в случае неудачи порт 28017 протокол HTTP запрос / с таймаутом 10 секунд тогда запустите проверить процесс rabbitmq-server с pid-файлом /var/run/rabbitmq.pid группа rabbitmq запустить программу "/etc/init.d/rabbitmq-server start" остановить программу "/etc/init.d/rabbitmq-server stop" если порт 5672 типа tcp не работает, то перезапустить если 3 перезапуска в течение 3 циклов, то таймаут
О других сервисах см: Monit wiki
Monit также позволяет отправлять email в правилах, и действует в нагрузке на сервер. Я бы посоветовал всем лучше изучить этот вопрос.