我遇到问题,每12-24小时,HHVM崩溃但似乎让这个过程继续运行。似乎大多数提供商只是使用php5-fpm作为nginx中的故障转移以获得稳定性。但是,这不会重新启动无响应的hhvm实例。
由于进程仍在运行,因此大多数服务器监视解决方案都会将其视为活动守护程序,而不是重新启动它。 HTTP监控的反应可能很慢。
是否可以在故障转移时触发hhvm重启?如果没有,那么确保重新启动非响应的侦听守护进程的最佳解决方案是什么。
答案 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崩溃的所有可能方式。