linux系统中Nginx守护进程(自动启动nginx)

作者:简简单单 2014-07-24

最近VPS的Nginx不知道为啥,会无缘无故关掉。可能是负载过高被母鸡Kill了。但是为了保持网站在线,写了个守护进程:

 代码如下 复制代码

aa=`pgrep -f nginx | wc -l`
if [ "$aa" = 0 ]
then
/usr/local/nginx/sbin/nginx
/usr/local/php/sbin/php-fpm start
else
echo "the program is running"
fi

把以上脚本写成一个.sh文件。然后用Crontab设置自动执行,发现Nginx不在进程中,自动启动Nginx和PHP-FPM。否则输出The Program is Running.

上面是一个针对Linux环境下的Nginx守护进程,现在来个增强版的.同学们看着改来用吧.

 代码如下 复制代码


ipv4=`ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"`
#把xxx@163.com改成自己的邮箱
EMAIL_TO=xxx@163.com
#可以把nginx改为其他要守护的进程名字
nd=`pgrep -f nginx | wc -l`
if [ "$nd" = 0 ]
then
echo -e "Server IP is : $ipv4 " | mail -s "The nginx program is Dead" $EMAIL_TO
/usr/local/nginx/sbin/nginx #当被守护进程不存在后,自动启动的进程。可修改
/usr/local/php/sbin/php-fpm start #当被守护进程不存在后,自动启动的进程。可修改
else
echo "the program is running"
fi

mail命令需要mailx这个程序,用下面这条命令安装。

 代码如下 复制代码

yum -y install mailx

跟上个版本一样把以上脚本写成一个.sh文件。然后用Crontab设置自动执行,这个版本是增强了邮件通知功能,发现Nginx不在进程中,自动启动Nginx和PHP-FPM并通过邮件通知管理检查。否则输出The Program is Running.

这样还会有一封邮件发送给你哦,哈哈是不是更智能了呀,比起windows系统是要智能了许多了哦。

相关文章

精彩推荐