web-dev-qa-db-ja.com

使用量が多すぎるためにアプリケーションを自動的に再起動する方法RAMまたはCPU

いくつかのGarry's Mod(ハーフライフ2 /ソースベース)サーバーを実行するUbuntu 14.04 LTSサーバーを実行します。 RAMまたはCPUを使いすぎて、これらのサーバーのいずれかがラインから外れることは望ましくありません。いずれかのサーバーが1ギガ以上のRAMまたは1 CPUコアの100%を使用している場合、自動的に再起動したいと思います。これに加えて、これらのアプリケーションを毎日、たとえば午前12時に自動的に再起動する方法はありますか?

私はbashスクリプトを書くのは初めてで、ほとんど知識がありませんが、誰かが少なくとも私を正しい方向に向けることができれば、それは非常にありがたいです。

2
Jake

monit これらのデーモンに注目してください:

Monitは、Unixシステムを管理および監視するための小さなユーティリティです。 Monitは自動メンテナンスと修復を実行し、エラー状況で意味のある原因アクションを実行できます。

たとえば、Apacheはリソースを使いすぎています。 MonitはApacheを停止または再起動し、アラートメッセージを送信できます[...]

構成ファイルにより、必要なものを自然な方法で簡単に表現できます。 の場合、次のようなことができます:

check process spamd with pidfile /var/run/spamd.pid
   group mail
   start program = "/etc/init.d/spamd start"
   stop  program = "/etc/init.d/spamd stop"
   if 5 restarts within 5 cycles then timeout
   if cpu usage > 99% for 5 cycles then restart
   if mem usage > 99% for 5 cycles then restart

インストールする:

$ Sudo apt-get install monit
4
lemonsqueeze