【已解决】Nginx服务崩溃自动重启脚本(监控进程服务并自动重启进程服务)

nginx_restart

本人有一台服务器运行着Nginx有半年多,还算稳定,但是最近突然有一次崩溃,导致使用方当天无法访问网页端,然后我不得不登录服务器,检查各项服务,发现nginx崩溃了,于是重启Nginx,问题解决。

后来为了防止Nginx再发生这种情况给运维带来的运维成本,于是写了一个脚本,放到Linux计划任务里进行监听管理Nginx服务,一旦崩溃,那么就自动重启Nginx服务。当然该脚本适合各种后台服务,可以简单修改,适应各种后台服务程序。

首先编写shell脚本:

#!/bin/bash
#author: Lucas.Yuan
#www.jyguagua.com
#Monitor nginx service

#check root user
if [ $(id -u) != "0" ]
then
        echo "Not the root user! Try using sudo command!"
        exit 1
fi

netstat -anop | grep 0.0.0.0:80
if [ $? -ne 1 ]
then
        exit
fi

echo $(date +%T%n%F)" Restart nginx Services " >> nginx.log
#/usr/local/nginx/sbin/nginx -s quit
/usr/local/nginx/sbin/nginx

其实主要内容就是

  • 检查是否是root用户
  • 检查监听服务程序的端口是否还正常
  • 对运行不正常的进程进行重启

最后,将该脚本命名为:nginx_restart.sh

加入Linux crontab自动任务里即可:

*/5 * * * * sh /usr/local/nginx/sbin/nginx_restart.sh

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: