如果崩溃则重新启动 httpd 的脚本

如果崩溃则重新启动 httpd 的脚本

由于流量很大,我的专用服务器上的 HTTP 服务崩溃了。然后,我不得不手动重启 httpd 服务。

我只是搜索一个检测 HTTP 服务是否正常的 shell 脚本 - 如果没有:重新启动 httpd。

如果您口袋里有这个,非常感谢......

答案1

这并不能解决您的问题。您需要找到问题的真正原因才能解决它。

无论如何你可以尝试监控。它是一个守护进程,用于监视您的服务并执行配置的操作(例如重启)。

答案2

如果您打算使用 shell 脚本...

#!/bin/bash

httpd_init="/etc/init.d/httpd"
check1="$(pgrep -f httpd)"
check2="$($httpd_init status | grep -E is[^not]running)"

[[ -n $check1 && -n $check2 ]] && echo "httpd is alive!" || { echo "httpd is dead!"; $httpd_init start; }

exit $?

该脚本对您的 httpd pid 执行简单检查(使用 pgrep),并对“/etc/init.d/httpd status”的响应字符串执行小型正则表达式检查(如果服务出现故障,当然会显示“已停止”)。

如果服务已停止,该脚本将使其恢复运行。

希望这可以帮助!

答案3

许多发行版正在迁移到systemdinit,它可以自动处理此类问题。抱歉,我知道这不是解决您问题的即时方法。

相关内容