公司使用Nginx做反向代理,以前都挺正常的,最近不知怎么回事总是无端被系统kill,而在nginx错误日志中也没有信息输出。
网上查了很多资料,也没什么靠谱的回答,唯一觉得有点关联的就是linux OOM Killer了,这篇文章感觉有点关系:理解和配置 Linux 下的 OOM Killer。也给出了相应的解决办法。
但我还是不太放心,万一最后还是被kill了怎么办,想来想去,最后还是决定写一个脚本来进行监控。
脚本功能:
每隔5秒检查一次,查看Nginx进程是否存在,如果不存在,就重新启动Ngin服务。
1 #!/bin/bash 2 # 3 # filename: check.sh 4 # 功能:监控 nginx 是否正常 5 # 6 # nginx重启的脚本 7 V_NGINX="/usr/local/nginx/sbin/nginx" 8 # 日志文件 9 V_LOG="/logs/check_nginx.log" 10 11 # 函数定义:重启nginx 12 function restart_nginx(){ 13 echo "----- `date` -----" >> $V_LOG 14 echo "--------nginx process----------" >> $V_LOG 15 echo "`ps aux |grep 'nginx'`" >> $V_LOG 16 echo "--------start nginx----------" >> $V_LOG 17 $V_NGINX >> $V_LOG 18 } 19 20 # 循环执行,不采用 crontab ,因为 crontab 最小单位是分钟,时间太长了 21 while : 22 do 23 # 检测 nginx 进程是否存在 24 V_NGINX_NUM=`ps axu |grep 'nginx' |grep -v 'grep' |wc -l` 25 if [ $V_NGINX_NUM -lt 1 ];then 26 restart_nginx #调用重启函数 27 continue 28 fi 29 # 休眠 30 sleep 5 31 done
参考资料:
关注我的公众号,不定期推送资讯
本文来自博客园,作者:链条君,转载请注明原文链接:https://www.cnblogs.com/MacoLee/p/5662989.html