这个标题其实不准确,我想表达的意思是:在检测到Nginx、httpd内存占用或系统负载较大时,自动重启相应进程。

为什么要这么大费周章?

1、为了自动化处理,在无人值守时一样能监控到系统状态并作出处置;

2、我们都知道,Nginx、httpd进程在使用service nginx restart命令时常常会出现意外,出现杀不死同时新进程也无法启动,最终反而使进程僵死,导致所有用户无法访问网站。所以需要先使服务停止,再检测是否还有同名服务,有的话再单独杀死;

3、为什么不周期性的重启?重启时会导致正在发起访问的用户得不到返回数据,所以重启应该尽量少做,所以只在其内存占用或系统负载较大时才做进程重启动作。

[php]#!/bin/sh

PID_MEM_MAX="85" #设置最大内存占用百分比

SYS_LOAD_MAX="5" #设置最大系统负载

NAME_LIST="httpd nginx" #设置需要监控的服务名称

for NAME in $NAME_LIST ;do

PID_MEM_SUM=0

PID_NUM_SUM=`ps aux | grep $NAME | wc -l`

PID_MEM_LIST=`ps aux | grep $NAME | awk '{print $4}'`

for PID_MEM in $PID_MEM_LIST

do

PID_MEM_SUM=`echo $PID_MEM_SUM + $PID_MEM | bc`

done

done

SYS_LOAD=`uptime | awk '{print $(NF-2)}' | sed 's/,//'` # 获取最近一分钟系统负载

echo " $(date +"%y-%m-%d %H:%M:%S") memory: $PID_MEM_SUM , load.avg: $SYS_LOAD" >>memuse.log

MEM_VULE=`awk 'BEGIN{print('"$PID_MEM_SUM"'>='"$PID_MEM_MAX"'?"1":"0")}'`

LOAD_VULE=`awk 'BEGIN{print('"$SYS_LOAD"'>='"$SYS_LOAD_MAX"'?"1":"0")}'`

if [ $MEM_VULE = 1 ] || [ $LOAD_VULE = 1 ] ;then

for NAME in $NAME_LIST ;do

service $NAME stop

sleep 2

for pid in $(ps -ef | grep $NAME | grep -v grep | awk '{print $2}'); do

echo $pid

kill -9 $pid

done

service $NAME start

done

fi;[/php]

将以上保存为load2kill.sh ,然后crontab -e添加定时任务(每10分钟检测1次):

[php]*/10 * * * * /data/www/load2kill.sh & >/dev/null[/php]

php nginx exec kill,彻底杀死nginx并重启相关推荐

  1. windows杀死nginx进程

    查看80端口号列表 tasklist|findstr "80" 根据端口号查看nginx tasklist|findstr "28024" 杀死nginx进程 ...

  2. Nginx一:centos7安装Nginx、OpenResty

    一.官网下载nginx 中文文档 https://www.nginx.cn/doc/ 1.使用wget命令下载(推荐) wget http://nginx.org/download/nginx-1.9 ...

  3. killall杀死nginx顽固进程

    两种方法,最快的就是killall命令根据进程名字杀死.第二就是找到nginx的master进程杀死,ps aux | grep nginx查看master进程然后再杀死worker进程才行,很明显杀 ...

  4. Linux Nginx启动报错:Failed at step EXEC spawning /etc/rc.d/init.d/nginx: Exec format error.

    目录 场景 报错 原因 解决 场景 systemd启动nginx systemctl start nginx.service 报错 报错第一行为 Failed at step EXEC spawnin ...

  5. 启动代码格式:nginx安装目录地址 -c nginx配置文件地址

    启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /us ...

  6. linux裸机安装nginx,linux环境下安装nginx步骤 - 进击的乌龟 - 博客园

    开始前,请确认gcc g++开发类库是否装好,默认已经安装. ububtu平台编译环境可以使用以下指令 apt- get install build- essential apt - get inst ...

  7. Nginx网站服务配置(Nginx服务基础,访问状态统计,访问控制,虚拟主机)

    编译安装Nginx服务 关闭防火墙,将安装 ngnix 所需的软件包上传到 /opt 目录下 安装依赖包 编译安装Nginx 创建运行用户.组 检查.启动.重载配.停止Nginx 增加Nginx系统服 ...

  8. ajax nginx 转发 sessionid_Nginx:初识Nginx(概念、在Docker中安装Nginx、常用命令、配置文件) - 怀梦想,致远方...

    1.Nginx初识 (1)概念 Nginx是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好 Nginx可以作为静态页面 ...

  9. Nginx网站服务(安装nginx,nginx访问配置)

    目录 一,nginx概述 1,什么是nginx? 2,Nginx应用场景 3.,Nginx的httpd七层代理和四层代理 二,Nginx和Apache的区别 三,手工编译安装nginx服务 1,关闭防 ...

最新文章

  1. salesforce学习框架图
  2. 算法提高课-图论-有向图的强连通分量-AcWing 1174. 受欢迎的牛:tarjan算法求强连通分量、tarjan算法板子、强连通图
  3. 【阿里妈妈数据科学系列】第一篇:认识在线实验
  4. 用c语言写代码_教你如何用android mvp分层架构优雅写代码
  5. mysql 表结构反转_一道经典的MySQL面试题,答案出现三次反转
  6. linux pxe服务器的配置,pxe http安装linux 配置
  7. CANoe教程:CAPL编程
  8. 基于QT实现的钢琴软件 (MFC大作业)
  9. 学神经网络需要什么基础,神经网络从入门到精通
  10. 输入一段字符串,记录当中有多少数字,大写字母,小写字母
  11. (十)损失函数与反向传播
  12. 虚幻引擎中蓝图间的几种通信方式
  13. UiPath 网页元素识别
  14. 操作系统:磁盘调度算法FCFS算法(c语言)
  15. 中啦 Computers in Biology and Medicine(CIBM)-- 投稿经验分享
  16. 2021章节练习基础(案例精选)30-40
  17. html/template
  18. 8月起,《PMBOK®指南(第七版)》将被采用,考PMP的注意了!
  19. vue关于element日历calendar组件上月、今天、下月、日历块点击事件
  20. java国际象棋,java – 国际象棋中casteld的实现

热门文章

  1. 山西职称计算机考试报名时间 2014,2014山西省6月份职称计算机考试报名入口
  2. python三种数据类型详解_最全面的Python数据类型知识点讲解
  3. Keras + Windows +Anaconda2-4.2.0 深度学习框架快速搭建
  4. 比尔盖茨的十句话,让你改变一生
  5. 长时间整理的xhtml网页设计规范
  6. 关于Jquery的parent和parents
  7. 词法分析(3)---DFA
  8. Java中字符串和数字间转换
  9. 浅谈malloc,calloc,realloc函数之间的区别
  10. 手写简版spring --9--对象作用域和FactoryBean