如何因使用过多 RAM 或 CPU 自动重启应用程序

如何因使用过多 RAM 或 CPU 自动重启应用程序

我将运行一个 Ubuntu 14.04 LTS 服务器,该服务器将运行几个 Garry's Mod(基于 Half-life 2/Source)服务器。我不希望这些服务器中的任何一个因占用过多的 RAM 或 CPU 而超出范围。如果任何服务器使用超过 1 GB 的 RAM 或 1 个 CPU 核心的 100%,我希望它自动重启。除此之外,有没有办法每天自动重启这些应用程序,比如在凌晨 12 点?

我对 Bash 脚本还很陌生,了解甚少,但如果有人至少能给我指明正确的方向,我将不胜感激。

答案1

监控留意这些守护进程:

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

相关内容