php-fpm死机解决办法,脚本后台自动重启
本人用nginx+php7搭建了一台服务器,因为请求量太大,而且php里面又有挂起的任务,导致php-fpm在高峰期的时候经常死掉,吧php-fpm的最大进程数已经改到1000了,还是吃不消,cpu也是超负荷,每次都要手动重启,太烦人,因此本人写了一个shell脚本,后台监听php-fpm,等达到一定数量让他重启,这样就有效的解决了手动重启,死机问题了。
1.声明文档头跟定义变量
#!/usr/bin/env bash
maxCount=300 #php-fpm最大进程数
basePath=$(cd `dirname $0`; pwd) #脚本所在目录
pidFilePath="$basePath/pid.conf" #pid存放文件
errorFilePath="$basePath/error.txt" #错误日志存放文件
2.定义关键函数
getDateTime(){
date "+%Y-%m-%d %H:%M:%S"
}
restart(){
kill-USR2$(cat /usr/local/php/var/run/php-fpm.pid)
}
start(){
/usr/local/php/sbin/php-fpm
}
stop(){
kill $(cat /usr/local/php/var/run/php-fpm.pid)
}
stopweb(){
if [ -f "$pidFilePath" ];then
kill $(cat "$pidFilePath")2>/dev/null
rm -r "$pidFilePath"
fi
}
main(){
stopweb
echo "$$">>"$pidFilePath"
while((1))
do
count=$(ps aux | grep -c php-fpm)
if (("$count">="$maxCount"));then
restart
date=$(getDateTime)
echo "date:$date,maxCount:$maxCount,count:$count">>"$errorFilePath"
fi
sleep 10
done
}
3.加入启动参数
case $1 in
"restart") restart
;;
"start") start
;;
"stop") stop
;;
"run") main
;;
"stopweb") stopweb
;;
*) echo "cmd error!"
;;
esac
4.终止脚本
exit 0
运行命令
./webserver restart #重启php-fpm
./webserver start #开启php-fpm
./webserver stop #停止php-fpm
setsid ./webserver run & #开启监听,后台运行&
./webserver stopweb #停止监听
完整脚本下载在qq群里面:群号490328630
php-fpm死机解决办法,脚本后台自动重启的更多相关文章
- linux死机解决办法
linux死机后不要长按电源建强制关机,容易对损坏系统配置或者电脑硬件,导致重启后产生不必要的麻烦 如果是在图形界面下死机的话,不要再依赖任何图形界面的工具,解决方法如下: 1.一种方式是进入终端界面 ...
- win10关不了机解决办法以及win10怎么禁止开机启动项
1.win10关不了机解决办法:https://zhidao.baidu.com/question/693962749213927924.html 2.win10怎么禁止开机启动项:https://j ...
- Ubuntu死机解决方法汇总
为什么不建议强制关机 如果长按电源按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道! 其实, 大部分时候的死机是假死, 不是真死... 有时候鼠标还能动呢. 还有一个原因: 对于平时忠贞不二 ...
- mac: vmware fusion中cent os启动假死的解决办法
环境: mac os X 10.9.2 + vmware 6.0.2 + cent OS 6.5 minimal 现象: Booting CentOS (2.6.32-358.e.l6.i686) i ...
- linux下通过脚本实现自动重启程序的方法
无论什么程序都不可能完美无缺,理论上,任何程序都有 Core Dump 的一天,正式运营的程序,尤其是服务器程序,一旦 Core Dump ,后果不堪设想,有过服务器开发经验的朋友,一定都经历过深夜美 ...
- 解决windows 10关机自动重启的问题
自从windows 10推出来没多久,就给台式机安装了.可是,有点悲剧的是:每次关机,都会自动重启(restart). 之后也在网上找了一些解决方式,但还是没用.前天通过搜索”Windows 10 c ...
- linux的vim按了ctrl+s之后假死的解决办法
习惯了很多软件的保存的快捷键,经常在vim中按下ctrl+s,然后就发现vim不响应了,之间一直采用kill的方式解决,近来搜了一下,是这样子的: 这时的vim并没有死掉,只是vim不再向终端输出东西 ...
- linux操作系统死机处理办法
这个方法可以在各种情况下安全地重启计算机.大家在键盘上找,可以找到一个叫做“Sys Rq”的键,在台机的键盘上通常与 Prt Sc 共键,在笔记本可能在其他位置,如 Delete.以台机为例,要使用这 ...
- Android Studio 模拟器启动问题——黑屏 死机 解决方法
今天用了下Android Studio,出现了一些问题,现在将启动过程中遇到的问题和解决方案列出来,方便大家参考. 安装过程不多说,网上一搜一大把. 那直接说问题吧: 1. 无法启动,报错:Faile ...
随机推荐
- 3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者
3410: [Usaco2009 Dec]Selfish Grazing 自私的食草者 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 71 Solve ...
- C++ 带有指针成员的类处理方式
在一个类中,如果类没有指针成员,一切方便,因为默认合成的析构函数会自动处理所有的内存.但是如果一个类带了指针成员,那么需要我们自己来写一个析构函数来管理内存.在<<c++ primer&g ...
- SSH登录与增删改查demo详解+源代码
点击下载,测试绝对可用SSH整合框架登录加增删改查demo 下载地址:http://download.csdn.net/detail/qq_33599520/9784679 一.框架概述 spri ...
- 2017java预备作业2
1 安装git • 到Git官网https://www.git-scm.com/ 下载Git客户端 • 安装时选择默认即可. • 安装完成后在桌面的快捷菜单中选择Git Bash Here 或者在开始 ...
- 深度学习实践系列(1)- 从零搭建notMNIST逻辑回归模型
MNIST 被喻为深度学习中的Hello World示例,由Yann LeCun等大神组织收集的一个手写数字的数据集,有60000个训练集和10000个验证集,是个非常适合初学者入门的训练集.这个网站 ...
- Java的一些基础知识
1.do-while循环不论循环条件判断结果,至少会执行一次. 2.Javac用于Java源代码文件编译成字节码的编译器. 3.import关键字导入包. 4.Java是Sun公司与1995年退出的高 ...
- pacejs进度条监控服务端数据加载是否完毕
记得刚刚入职新公司的时候,公司在做app里面的h5页面.跟之前公司的流程不太一样.之前都是写完静态页面后通过ajax加载接口数据,这公司省事了,写完静态页面直接扔给服务端,他们来填数据,确实给前端省事 ...
- 较简单的用ajax修改和添加功能(链接数据库)
修改和添加关于数据库的信息,可以用于任何的添加和修改 这些数据库和前面的随笔数据库是一样的 一.显示出数据库中的信息 (1)显示的效果也可以是用bootstrap的标签页显示(前面一定要引入boots ...
- iOS 文本转语音(TTS)详解:Swift
上一篇博客讲解了iOS的speech FrameWork语音识别的功能:http://www.cnblogs.com/qian-gu-ling/p/6599670.html,对应的这篇博客就写一下文本 ...
- python 基础知识(待补充)
数据结构: python数据结构共包含四大类: 列表 列表是可变元素,支持增删改查操作 字典 字典是遍历,key:value 格式. 元组 元组数据不可变元素,仅仅有两个操作 index, coun ...