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