在去年中旬的时候我发表了一篇《CentOS 下从源搭建 Nginx / MariaDB / HHVM》,今天发个小更新

一个 Shell 脚本,防止 hhvm 导致 502今天发的这个小工具就是用来支援不想安装 Supervistor 的,是我基于军哥的 check502.sh 这个小脚本为基础加了一个循环做出来的,源码如下:

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

while : ;do

    CheckURL="https://www.zntec.cn/"

    STATUS_CODE=`curl -o /dev/null -m 10 --connect-timeout 10 -s -w %{http_code} $CheckURL`
    if [ "$STATUS_CODE" = "502" ]; then
        pkill hhvm #之所以杀进程是因为我发现 centos 下,hhvm 老是喜欢带上 nginx 哥俩一起卡进程,真 **
        pkill nginx
        /etc/init.d/nginx restart
        /etc/init.d/hhvm restart
    fi

sleep 3
done

把如上源码保存到文件,例如 /root/chech.sh,保存后记得设定可执行权限(chmod +x /root/check.sh),设定好权限之后我们就可以直接 ./check.sh 运行了,但是如果这样的话、我们断开了终端脚本也就会自动停止。也就是说,如果你想要保持网站不会 502 的话就要一直连着终端并运行这个脚本。


纳尼?!当然不能这样,就算你有空一天到晚连着 。。你也无法保证你那儿会不会断网呀。

所以,我们应当如何使用正确姿势运作此脚本?

使用 screen 或 nohup 吗?是可行的,但是不够合理,因为每次开机都要进入 screen 或者再运作一次 nohup

咱用这样的“笨”脚本,那咱就用笨方法,直接把它加到开机启动里边儿去~

echo "/root/check.sh" >> /etc/rc.local #仅适合 centos,请在运行此命令的时候把 check.sh 的地址改为自己的,ubuntu 请自行搜索 rc.local 的位置

加到开机启动里边儿后,咱们重启机器就可以让他保持在一开机就运作着啦!

重启后,尝试停止一下 hhvm、让网站 502,看看是否生效:

一个 Shell 脚本,防止 hhvm 导致 502如果你跟我一样像上图挂几秒又自动运作了的话,那就说明你成功了。


小结

没小结,hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh.....

目前有5条回应
Comment
Trackback
Loading ....
  • 免费资源部落 回应于2016/01/30 23:51 回复TA

    hhvm稳定性如何?不会经常出问题吧?

    • Tomas 回应于2016/01/31 13:00 回复TA

      稳定性很差啊 。。。访问量一大就不行。可能是我内存太小了 。。。。。

      不过搞个脚本来监控网站还是挺可行的,挂了的话几秒就恢复了。

  • 大喇叭 回应于2016/01/26 14:33 回复TA

    你现在用的是hhvm么啊。。。好像说php7的性能已经和hhvm的性能差不多了啊

    • Tomas 回应于2016/01/30 19:29 回复TA

      对呀,是 HHVM,我还是觉得 HHVM 比 PHP7 快,在探针下测试也是快一点 。。虽然那些专业测试的软件显示 PHP7 快

  • 本篇文章没有Trackback
你目前的身份是游客,请输入昵称和电邮!