如何处理 HHVM 崩溃或当它变得无响应时?

How to handle HHVM crash or when it becomes unresponsive?

当前状态是这样的:Nginx -> HHVM -> PHP5-FPM.

当 HHVM 崩溃时(经常)它 returns 502 错误。

我对 nginx 配置做了@fallback 解决方法,但我需要手动重启 hhvm。

此处 Automatically restarting HHVM when it stops responding but process not dead 描述了一些 PID 侦听器 cron,但有时 hhvm 只是对现有 pid 没有响应。

如何监控?

监控您的网站如何?使用 WDT.io,您可以使用您的网站地址创建一个出站看门狗计时器,以便每分钟对其进行测试,并在 returns 502 或任何其他错误时提醒您。这样做的好处是还可以找出除 HHVM 之外是否还有其他问题。

我有完全相同的问题 - HHVM 随机变得无响应(我还没有弄清楚原因)

以下是我监控 HHVM 的方式:

我创建了一个简单的 status.php:

<?php echo 'status' ?>

然后我创建了status.shbash文件:

#! /bin/bash
STATUS="`timeout -s KILL 13 wget -T 13 -q -O -  http://domain.com/status.php`"
if [ "$STATUS" != "status" ]
then
  /etc/init.d/hhvm stop
  /etc/init.d/hhvm start
fi

然后我创建了一个每分钟 运行 的 cron 作业:

* * * * * /bin/bash /var/www/camera.new/status.sh

您可以调整超时(目前 - 13 秒)。我想如果 HHVM 没有 运行 简单的 status.php 文件 13 秒,就该重新启动了。