Как автоматически перезапустить приложение для использования слишком большого количества оперативной памяти или процессора

Я собираюсь запустить сервер Ubuntu 14.04 LTS, на котором будут работать несколько серверов Garry Mod (Half-life 2/Source). Я не хочу, чтобы какой-либо из этих серверов выходил из строя, занимая слишком много ОЗУ или ЦП. Если какой-либо сервер использует более 1 гигабайта оперативной памяти или 100% одного ядра процессора, я бы хотел, чтобы он автоматически перезагружался. В дополнение к этому, есть ли способ автоматически перезапускать каждое из этих приложений ежедневно, скажем, в 12 часов?

Я очень новичок в написании сценариев bash и мало что знаю, но если бы кто-то мог хотя бы указать мне правильное направление, я был бы очень признателен.

1 ответ

Решение

Следите за этими демонами:

Monit - небольшая утилита для управления и мониторинга Unix-систем. Монит проводит автоматическое обслуживание и ремонт и может выполнять значимые причинно-следственные действия в ситуациях ошибки.

Например, apache использует слишком много ресурсов. Monit может остановить или перезапустить Apache и отправить вам сообщение с предупреждением [...]

Файлы конфигурации позволяют легко выразить то, что вы хотите естественным образом. Например, вы можете сделать что-то вроде:

check process spamd with pidfile /var/run/spamd.pid
   group mail
   start program = "/etc/init.d/spamd start"
   stop  program = "/etc/init.d/spamd stop"
   if 5 restarts within 5 cycles then timeout
   if cpu usage > 99% for 5 cycles then restart
   if mem usage > 99% for 5 cycles then restart

Установить:

$ sudo apt-get install monit
Другие вопросы по тегам