Como reiniciar os serviços Linux se atingir 100% da CPU?

Como reiniciar os serviços Linux se atingir 100% da CPU?

Eu tenho um servidor de e-mail postfix com saslauthd. Repetidamente o daemon saslauthd consome 100% da CPU. Reiniciar esses serviços retorna ao uso normal da CPU.

Existe algum script adequado para determinar serviços com alto uso de CPU e reiniciá-los automaticamente.

Desde já, obrigado.

Responder1

Você pode querer dar uma olhada em monit(site oficial).

É facilmente configurável para observar o alto uso da CPU e reiniciar processos quando necessário.

Um exemplo simples (você deve configurá-lo de acordo com os caminhos e necessidades do seu 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

Onde (retirado do 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

E umciclois é igual ao número de segundos nas set daemonopções de configuração.

informação relacionada