Nginx 502 Bad Gateway 自动重启脚本
推荐脚本需要确保系统已安装curl,centos可以执行:yum install curl,debian/ubuntu可以执行:apt-get install curl
用winscp或vi有或nano在/root目录下创建502.sh 内容如下:#!/bin/bash
# author: licess
# website: http://www.lnmp.org
CheckURL="https://www.vpser.net"
STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`
#echo "$CheckURL Status Code:\t$STATUS_CODE"
if [ "$STATUS_CODE" = "502" ]; then
/etc/init.d/php-fpm restart
fichmod +x /root/502.sh
用crontab 一分钟执行一次。上面的https://www.vpser.net改成你的地址,如果该页面是静态,需换成以php的页面地址。
crontab 教程:https://www.vpser.net/manage/crontab.html
其他的重启脚本,下面这个如果php函数里禁用了shell_exec 将无法使用。#!/usr/bin/php
<?
$url = 'https://www.vpser.net';
$cmd = '/etc/init.d/php-fpm restart';
for($i = 0; $i < 5; $i ++){
$exec = "curl --connect-timeout 3 -I $url 2>/dev/null";
$res = shell_exec($exec);
if(stripos($res,'502 Bad Gateway') !== false){
shell_exec($cmd);
exit();
}
}
?>用crontab 一分钟执行一次。 url和cmd根据自己的改。
原理就是用curl获取HTTP头,发现502状态码就执行重启php-fpm的命令。 老大,这代码最后怎么有个?>
是不是多了,或者开头应该有个<?
回复 2# 的帖子
已修正 Parse error: syntax error, unexpected $end in /root/autorestartphp.sh on line 15第15行就是最后一行只有一个?>
这是啥问题啊老大
回复 4# 的帖子
可能是里面的一下符合,如‘ } 之类的成了中文下面的,检查一下看看。 请问 这代码放在哪??????????? 原帖由 mmdmm 于 2010-12-24 17:36 发表 https://bbs.vpser.net/images/common/back.gif请问 这代码放在哪???????????
超级菜鸟同问。
回复 7# 的帖子
crontab -e 老大 用crontab -e 命令 编辑好内容后 如何保存并关闭呢。。 esc:
wq 按 ESC?
然后按 :
再按 wq? :Q :Q :Q :Q :Q :Q :Q :Q :Q :Q
回复 1# 的帖子
crontab中每分钟启动执行一次,这个命令怎么写?回复 13# 的帖子
*/1 * * * * 文件回复 1# 的帖子
Do you want to retry the same edit? ncrontab: edits left in /tmp/crontab.XXXX1vmv68
出现这个是什么原因?
麻烦,能抽空回答下吗?谢谢了
[ 本帖最后由 智立更生 于 2011-9-5 11:53 编辑 ]
页:
[1]
2