设置当特定服务失败时自动重启服务器

设置当特定服务失败时自动重启服务器

我正在运行基于 Linux 的服务器(centos 6.0),带有 cpanle 和 WHM,

我有一个重要的网站,该网站运行着一个聊天服务器,该聊天服务器使用 openfire 作为聊天服务器的后端服务器,我监控了过去几周,发现这个服务经常崩溃,我无法知道这一点,我不得不等到第二天才能重新启动服务器。(这只能通过重启服务器来解决,因为它与一些 Java 内存问题有关)

有没有办法可以为服务器设置监控服务,如果该服务出现故障,服务器本身是否会重新启动?

这是可能的吗?或者有更好的方法来解决这个问题?

答案1

更好的方法是正确配置 openfire/java,这样它就不会耗尽内存。

答案2

看着监控用于过程/系统监控。

只是一个示例配置。我对 Openfire 一无所知...

check process openfire
        with pidfile "/var/run/openfire/openfire.pid"
        start program = "/sbin/service openfire start"
        stop program = "/sbin/service openfire stop"
        if 10 restarts within 11 cycles then timeout
        if cpu usage > 95% for 11 cycles then restart
        if totalmemory > 512 MB then restart # This can be any number...

如果超出特定参数(在本例中是内存),这将重新启动服务。

答案3

crontab每天检查程序是否正在运行?,如果失败,请重新启动服务。检查进程运行的最简单方法是使用ps aux | grep proc-name或使用pgrep。只需创建一个在某个时间段运行的进程运行检查器脚本即可cron

相关内容