¿Cómo reiniciar los servicios de Linux si llega al 100% de CPU?

¿Cómo reiniciar los servicios de Linux si llega al 100% de CPU?

Tengo un servidor de correo electrónico postfix con saslauthd. Una y otra vez el demonio saslauthd consume el 100% de la CPU. Al reiniciar estos servicios se vuelve al uso normal de la CPU.

¿Existe algún script adecuado para determinar los servicios con un alto uso de CPU y reiniciarlos automáticamente?

Gracias de antemano.

Respuesta1

Quizás quieras echar un vistazo a monit(sitio oficial).

Es fácilmente configurable para observar el uso elevado de la CPU y reiniciar los procesos cuando sea necesario.

Un ejemplo simple (debe configurarlo según las rutas y necesidades de su sistema):

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

Donde (tomado del manual):

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

y uncicloEsto es igual a la cantidad de segundos en las set daemonopciones de configuración.

información relacionada