如果 CPU 使用率达到 100%,如何重新启动 Linux 服务?

如果 CPU 使用率达到 100%,如何重新启动 Linux 服务?

我有带 saslauthd 的 postfix 电子邮件服务器。saslauthd 守护进程一次又一次地占用 100% 的 CPU。重新启动这些服务后 CPU 使用率会恢复正常。

是否有合适的脚本来确定 CPU 使用率高的服务并自动重新启动它。

提前致谢。

答案1

你可能想看看monit官方网站)。

它可以轻松配置以监视高 CPU 使用率并在需要时重新启动进程。

一个简单的例子(你应该根据你的系统路径和需要进行配置):

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

其中(取自手册):

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

以及循环等于set daemon配置选项中的秒数。

相关内容