Linux: Drittanbieterprozess automatisch neu starten, sobald der Wert bei 100% festgelegt ist

703
Mahmoud Al-Qudsi

Gibt es eine generische Methode, um einen Prozess zu überwachen und automatisch neu zu starten, wenn er länger als x Sekunden bei 100% CPU liegt?

Ich kämpfe gegen einige Fehler in Monos fastcgi-Server, und während ich nach einem Fix suche (Analyse der Stack-Spuren), suche ich nach einer Problemumgehung, die automatisch das Feststecken erkennt und mit den gleichen Befehlszeilenparametern neu startet.

Vielen Dank.

0

1 Antwort auf die Frage

1
NineHills

Versuchen Sie es mit MONIT .

Beispielkonfiguration:

check process example-server with pidfile /var/run/example-server.pid start program = "/etc/init.d/example-server start" with timeout 60 seconds stop program = "/etc/init.d/example-server stop" if cpu > 90% for 3 cycles then restart 

Siehe auch:

  1. https://serverfault.com/questions/97541/kill-process-with-high-cpu-usage-nach-x-time
  2. https://stackoverflow.com/questions/2784468/monitor-and-kill-runaway-processes-using-100-io
  3. http://mmonit.com/monit/documentation/monit.html
Danke, das sieht vielversprechend aus. Der schlimmste Fall war, eine leichte Hülle um 'pidstat' zu schreiben, aber das sieht gut aus. Mahmoud Al-Qudsi vor 12 Jahren 0