HHVM停止响应但进程未死时自动重启HHVM

时间:2014-11-20 19:21:02

标签: nginx monitoring daemon hhvm

我遇到问题,每12-24小时,HHVM崩溃但似乎让这个过程继续运行。似乎大多数提供商只是使用php5-fpm作为nginx中的故障转移以获得稳定性。但是,这不会重新启动无响应的hhvm实例。

由于进程仍在运行,因此大多数服务器监视解决方案都会将其视为活动守护程序,而不是重新启动它。 HTTP监控的反应可能很慢。

是否可以在故​​障转移时触发hhvm重启?如果没有,那么确保重新启动非响应的侦听守护进程的最佳解决方案是什么。

2 个答案:

答案 0 :(得分:1)

kristapsk发布了关于此主题的官方错误的解决方案。 这是他告诉要添加到cron的脚本,每2分钟执行一次。

我对它进行了一些修改,使其适用于预先构建的HHVM包。

#! /bin/bash
PID="`cat /var/run/hhvm/pid`"

if [ "$PID" == "" ]; then
    echo No PID, starting up
    /etc/init.d/hhvm start
else
    if [ "`ps ax -o pid | grep $PID`" == "" ]; then
        echo HHVM PID $PID not running, starting up
        # Stop, just in case, if crashed. Else you would get:
        #  * WARNING: hhvm.83 has already been started
        /etc/init.d/hhvm stop
        /etc/init.d/hhvm start
    fi
fi

答案 1 :(得分:0)

关于您对另一个答案的评论,当您对php有后盾并且想要确保HHVM是响应的一个很好的选择是使用the answer here中的解决方案进行一次更改,状态脚本检查以下内容:

if (defined('HHVM_VERSION')) {
  echo 'status';
}

这两种解决方案的组合将处理hhvm崩溃的所有可能方式。