背景
租的便宜VPS时不时就给我自动重启,然后每次系统重启时Nginx服务都会启动失败。本着“能跑就行”的伟大精神,比起花时间调查原因,不如写个脚本定期监测Nginx的服务状态,发现服务没启动就启动它不就好了。
怎么做
- 创建
/root/check_nginx.sh
,内容如下:
#!/bin/bash
# 检查 nginx 服务的状态
nginx_status=$(systemctl is-active nginx)
# 如果 nginx 没有运行,则启动服务
if [ "$nginx_status" != "active" ]; then
echo "Nginx 服务未运行,正在启动..."
sudo systemctl start nginx
# 再次检查服务是否启动成功
if [ "$(systemctl is-active nginx)" == "active" ]; then
echo "Nginx 服务已成功启动。"
else
echo "Nginx 服务启动失败,请检查错误日志。"
fi
else
echo "Nginx 服务正在运行。"
fi
- 将脚本启动指令写入crontab。Root用户执行
crontab -e
,添加以下内容:
# 每30分钟执行一次检查
*/30 * * * * bash /root/check_nginx.sh
搞定✨
写在最后
脚本是死的,人是活的。请根据环境和实际需要适当修改以上案例中的脚本。