Как перезапустить службы Linux, если загрузка ЦП достигла 100%?

Как перезапустить службы Linux, если загрузка ЦП достигла 100%?

У меня есть почтовый сервер postfix с saslauthd. Время от времени демон saslauthd съедает 100% CPU. Перезапуск этих служб возвращает нормальное использование CPU.

Есть ли какой-нибудь подходящий скрипт для определения служб с высокой загрузкой ЦП и их автоматического перезапуска?

Заранее спасибо.

решение1

Возможно, вам захочется взглянуть на monit(официальный сайт).

Его легко настроить для отслеживания высокой загрузки ЦП и перезапуска процессов при необходимости.

Простой пример (вам следует настроить его в соответствии с путями и потребностями вашей системы):

check process saslauth with pidfile /var/run/saslauthd/saslauthd.pid
    group mail
    start program = "/etc/init.d/saslauthd start"
    stop program = "/etc/init.d/saslauthd stop"
    if cpu > 90% for 2 cycles then restart

Где (взято из руководства):

CPU([user|system|wait]) is the percent of time the system spend in user or 
kernel space and I/O. The user/system/wait modifier is optional, if not 
used, the total system cpu usage is tested

Ициклравно количеству секунд в set daemonпараметрах конфигурации.

Связанный контент