![Как перезапустить службы Linux, если загрузка ЦП достигла 100%?](https://rvso.com/image/726829/%D0%9A%D0%B0%D0%BA%20%D0%BF%D0%B5%D1%80%D0%B5%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D1%82%D0%B8%D1%82%D1%8C%20%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D1%8B%20Linux%2C%20%D0%B5%D1%81%D0%BB%D0%B8%20%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0%20%D0%A6%D0%9F%20%D0%B4%D0%BE%D1%81%D1%82%D0%B8%D0%B3%D0%BB%D0%B0%20100%25%3F%20.png)
У меня есть почтовый сервер 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
параметрах конфигурации.