![Wie starte ich Linux-Dienste neu, wenn die CPU-Auslastung 100 % erreicht?](https://rvso.com/image/726829/Wie%20starte%20ich%20Linux-Dienste%20neu%2C%20wenn%20die%20CPU-Auslastung%20100%20%25%20erreicht%3F%20.png)
Ich habe einen Postfix-E-Mail-Server mit saslauthd. Immer wieder verbraucht der saslauthd-Daemon 100 % der CPU. Durch einen Neustart dieser Dienste wird die normale CPU-Auslastung wiederhergestellt.
Gibt es ein geeignetes Skript, um Dienste mit hoher CPU-Auslastung zu ermitteln und automatisch neu zu starten?
Dank im Voraus.
Antwort1
Vielleicht möchten Sie einen Blick auf monit
( werfen.offizielle Seite).
Es lässt sich leicht konfigurieren, um auf hohe CPU-Auslastung zu achten und Prozesse bei Bedarf neu zu starten.
Ein einfaches Beispiel (Sie sollten es entsprechend Ihren Systempfaden und Anforderungen konfigurieren):
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
Dabei gilt (aus dem Handbuch entnommen):
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
Und einZyklusDies entspricht der Anzahl der Sekunden in den set daemon
Konfigurationsoptionen.