2014-11-20 3 views
2

У меня проблема, когда каждые 12-24 часа HHVM вылетает, но, похоже, он не работает. Похоже, что большинство провайдеров просто используют php5-fpm в качестве отказоустойчивости в nginx для стабильности. Тем не менее, это не приведет к перезапуску невосприимчивого экземпляра hhvm.Автоматический перезапуск HHVM, когда он перестает отвечать, но процесс не мертв

Поскольку процесс оставлен включенным, большинство решений для мониторинга серверов будут рассматривать его как живой демон и не перезапускать его. Мониторинг HTTP может медленно реагировать.

Возможно ли инициировать перезапуск hhvm при отказе? Если нет, то что будет лучшим решением для обеспечения того, что демон для прослушивания, который не отвечает, перезапускается.

ответ

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

Я считаю, что это простой скрипт cron для проверки того, что процесс HHVM все еще работает. К сожалению, это не решает проблему проверки того, что еще «прослушивающий» процесс просто стал невосприимчивым. – etc

+0

@etc, HHVM падает, когда он становится невосприимчивым :-) –

+1

Не всегда. На самом деле это довольно хорошо документированная проблема. – etc