监控php-fpm并自动重启服务的shell脚本
#!/bin/bash
#变量初始化
process="php-fpm" #进程名
startCmd="/etc/init.d/php-fpm start" #启动命令
down=0
while true
do
#取得http状态码
code=$(curl -H "Host:www.jb51.net" -m 5 -L -s -w %{http_code} http://127.0.0.1 -o /dev/null)
#当状态码返回000或者大于等于500时,计数故障到down变量
if [ $code -eq 000 -o $code -ge 500 ];then
((down++))
else
break
fi
#稍等5s
sleep 5
#判断是否连续检测三次都为故障.
if [ $down -ge 3 ];then
if [ "$(find /tmp/${process}_restart -mmin -3)" == "" ];then
#取得进程名对应的所有pid
pids=$(ps aux | grep ${process} | grep -v "grep" | awk '{print $2}')
#依次对所有pid执行kill命令
for i in $pids;do
kill -9 $i
kill -9 $i
done
#kill完pid后,启动服务
$startCmd
echo "$(date) Return code $code,${process} had been restarted" >> /tmp/${process}_restart
else
echo "$(date) ${process} not yet recovery.As it had been restarted in 2 minutes.so this time ignore." >> /tmp/${process}_not_restart
fi
break
fi
done
相关推荐
-
php 判断服务器操作系统的类型
一:php有许多系 统预定义变量,通过判断他们可以简单的判断服务器系统是 windows还是*unix, 其中相关的函数或者预定义变量如下:php_uname().PHP_OS.DIRECTORY_SEPARATOR.PHP_SHLIB_SUFFIX.PATH_SEPARATOR 二:实例: 复制代码 代码如下: <?php if(strtolower(substr(PHP_OS, 0, 3)) == 'win'){ echo 'windows';
-
分享一段php获取linux服务器状态的代码
简单的php获取linux服务器状态的代码,不多说-直接上函数: 复制代码 代码如下: function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs = ""; while(!feof($fp)){ $rs .= fread($fp,1024); } pclose($fp
-
php socket客户端及服务器端应用实例
经常有朋友会对php的socket应用充满疑惑,本文就以实例代码作一讲解,希望能对初学php的朋友起到一点帮助作用 具体代码如下: 1.服务器端代码: <?php class SocketServer{ private $_port='9000'; private $_address='127.0.0.1'; private $_client_socket_list=array(); public function __set($name,$val){ $this--->$name=$val;
-
监控服务器swap并重启php的Shell脚本
折中一下,写个脚本监控swap吧,放在crontab里面,2小时执行一次,世界安静了,再也没有烦人的报警短信了 复制代码 代码如下: #!/bin/bash function usage { echo "Usage: $0" echo "e.g. $0 1500" exit } if [ $# -lt 1 ];then usage fi typeset -i nowSwap limitSwap limi
-
PHP获取服务器端信息的方法
本文实例讲述了PHP获取服务器端信息的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: /** * 获取系统信息 * * @return array */ function getSystemInfo() { $systemInfo = array(); // 系统 $systemInfo['os'] = PHP_OS; // PHP版本 $systemInfo['phpversion'] = PHP_VERSION; // Apache版本
-
通过PHP CLI实现简单的数据库实时监控调度
要实现的功能:监控user表,若有新纪录增加,将其向user2表中添加.(实际应用上可以引深一些,例如对数据进行相关处理等) 下面是PHP代码(dbtest.php) 复制代码 代码如下: !#/usr/local/php/bin/php <?php mysql_connect('localhost', 'username', 'password'); mysql_select_db("test"); echo 'PID: '.posix_getpid().' '; //当前进程
-
phpmailer在服务器上不能正常发送邮件的解决办法
phpmailer本身是一个很不错的开源邮件类,也非常的易用简单,就是偶尔会出现程序上传到服务器上不能发送邮件的情况,在之前也有同学问过我这个问题,当时的时候总是不以为然,今天终于让我碰上了,用phpmailer 在本地测试正常,上传到服务器上就不行了,当然了是用的SMTP方式,最终确定是fsockopen 函数惹的祸,因为安全原因fsockopen 和pfsockopen 经常被服务器端关闭.解决方法如下: 而代之的应该是 stream_socket_client()函数,不过他的参数有一点不
-
PHP实现服务器状态监控的方法
本文实例讲述了PHP实现服务器状态监控的方法.分享给大家供大家参考.具体分析如下: PHP服务器状态监控对于很多朋友来讲都没做,只有看到网站挂了才知道,这种半夜网站关了是不知道情况了,对于网站也非常不好,为此这两天抽空写了个网页服务器状态监控,看到有朋友说需要,那我就放出来吧.很简单的东西. 使用方法: 打开压缩包里面的status.php文件.编辑这里的内容为你自己的邮箱信息.代码如下: 复制代码 代码如下: $mail->Host = 'smtp.exmail.qq.com';
-
自动重启服务的shell脚本代码
复制代码 代码如下: #!/bin/bash if [ ! -f /tmp/down_count ];then echo "0" > /tmp/down_count fi curl -I tomcat-host -o "/tmp/status" >/dev/null 2>&1 code=`awk 'NR==1 {print $2}' /tmp/status` if [ "$[code]" -ge 500 ];then d
-
监控php-fpm并自动重启服务的shell脚本
脚本代码: 复制代码 代码如下: #!/bin/bash #变量初始化process="php-fpm" #进程名startCmd="/etc/init.d/php-fpm start" #启动命令down=0 while truedo #取得http状态码 code=$(curl -H "Host:www.jb51.net" -m 5 -L -s -w %{http_code} http://127.0.0.1 -o /dev/nu
-
一个监控Squid运行进程数并自动重启的简洁Shell脚本分享
复制代码 代码如下: #!/bin/sh while sleep 30 do SquidNum=`ps -ef|grep squid|grep -v grep|wc -l` #HttpNum=`netstat -an|grep 0.0.0.0:80|grep -v grep|wc -l` #80状态 if [ $SquidNum != 3 ] ; then /etc/rc3.duid start adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S` e
-
实现自动清除日期目录shell脚本实例代码
实现自动清除日期目录shell脚本实例代码 很多时候备份通常会使用到基于日期来创建文件夹,对于这些日期文件夹下面又有很多子文件夹,对于这些日期文件整个移除,通过find结合rm或者delete显得有些力不从心.本文提供一个简单的小脚本,可以嵌入到其他脚本,也可直接调用,如下文供大家参考. 1.脚本内容 [root@SZDB ~]# more purge_datedir.sh #!/bin/bash # Author: Leshami # Blog : http://blog.csdn.net/l
-
golang API开发过程的中的自动重启方式(基于gin框架)
概要 基于 golang Gin 框架开发 web 服务时, 需要时不时的 go build , 然后重启服务查看运行结果. go build 的过程集成在编辑器中(emacs), 可以通过快捷键迅速完成, 但是每次重启服务都切换到命令行中操作. 因此, 希望能够编译通过之后自动重启服务. 这里并不是部署阶段的服务重启, 所以不用过多考虑是否正常退出其中的协程. 实现方式 在开源的 illuminant 项目中, 已经将相应的代码集成到 gin 的 debug mode 中. 代码文件: htt
-
PowerShell重启服务命令Restart-Service详细介绍
PowerShell重启服务(Restart-Service),使用PowerShell可以很方便的操作Windows系统服务,比如实现自动重启服务.本文就介绍如何使用PowerShell来重启服务,以及一些相关的内容.PowerShell中重启服务的cmdlet是Restart-Service,顾名思义就是把服务停止了再启动起来. PowerShell重启服务(Restart-Service) 使用PowerShell可以很方便的操作Windows系统服务,比如实现自动重启服务.本文就介绍如何
-
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
在平时使用swoole进行开发中,常常遇到这种问题,改了代码之后,手动ctrl+c中断服务,再敲命令重启服务.频繁地重启,感觉心很累. php提供了inotify扩展,调用linux的inotify系统调用,监控文件的变化. 这时候就产生了一个想法,我开一个主进程监控文件变化,再开一个子进程运行swoole服务.主进程监听到文件变化之后,干掉子进程,然后再开一个子进程运行swoole服务. 子进程如果想优雅地退出,安装个信号处理器,在退出之前做一些操作. <?php //index.php re
-
PHP脚本监控Nginx 502错误并自动重启php-fpm
最近服务器时不时出现Nginx 502 Bad Gateway,如果在电脑旁边还好,要是半夜或者出去了,怎么办? 没关系,写个脚本检测服务状态,发现异常,自动重启. 自动重启脚本: 复制代码 代码如下: <?php $url = 'http://blog.rebill.info'; $cmd = '/usr/local/php/sbin/php-fpm restart'; for($i = 0; $i < 5; $i ++){ $exec = "curl con
-
智能监测自动重启Apache服务器的Shell脚本
由于需要监控某些要求高可用性的Apache服务器,除了专业的监控报警设备,低成本下在Apache服务器上写一个自动监测Apache状态的脚本是个不错的主意.在网上搜索了许多类似的脚本,但由于局限性较大,也都存在一些不完善的地方,所以自己写了一个. 脚本功能与特点 1.能够每隔一段时间监测Apache服务器的可用性(由于本脚本直接模拟了客户端的访问,因此这里的"可用性"是指切切实实的正常可访问) 2.在出现无法访问的情况下,能够自动重启Apache服务(强行重启) 3.在重启后仍然无法正
随机推荐
- ajax 防止用户反复提交的2种解决方案
- php返回json数据函数实例
- JavaScript提高加载和执行效率的方法
- js正则实现的密码框简单制作,还可以替换成自己想用得符号
- Bootcfg 配置、查询或更改 Boot.ini 文件设置
- 实现div可编辑的常见方法总结
- javascript实现手机震动API代码
- WordPress入门指南-wordpress安装使用说明
- MySQL服务器连接过程浅析
- Ajax轮询请求状态(微信公众号带参数二维码登录网站)
- js获取IP和PcName(IE)在vs中可用
- jquery插件制作 自增长输入框实现代码
- C++学习小结之语句
- jquery访问ashx文件示例代码
- Javascript实现一个简单的输入关键字添加标签效果实例
- php文件系统处理方法小结
- 05年不容错过的两大存储热点
- 浅析JS抽象工厂模式
- iOS Swift控制器转场动画示例代码
- Python实现JSON反序列化类对象的示例