Почему поведение в режиме демона не запускается автоматически после перезагрузки сервера?

HipHop/HHVM можно запустить как демон (поэтому он запускается автоматически после перезагрузки) с

sudo /usr/bin/hhvm --mode daemon --config /etc/hhvm/server.hdf

при запуске он работает отлично (что показывает, что конфигурации в порядке). Но после перезапуска машины HHVM ушел и должен быть перезапущен вручную. В строке ВКЛ. конфигурации были взяты из официальных учебников создателей HHVM. Классический синтаксис службы, как sudo service hhvm start также отлично работает, но не поддерживает перезапуск машины.

что у меня есть сделано, чтобы отследить проблему:

журнал ошибок HHVM /var/log/HHVM/error.log регистрирует эту строку при каждом перезапуске:Unable to open pid file /var/run/hhvm/pid for write. /etc/hhvm/server.hdf и PidFile = /var/run/hhvm/pid в первой строке. Поскольку это поставляется с HHVM по умолчанию, я не хочу его менять. Я думаю, что судо здесь проблема. Без sudo HHVM не будет работать. Chmod 777'ing PID-файл и указание на другой пустой файл не решают проблему.

вопрос:

что это правильно способ установить HHVM в качестве демона ?

1 ответов


Ручной Путь

со ссылкой на собственный упаковочный материал HHVM, вам нужно запустить hhvm как демон.

Итак, создайте файл в /etc / init.d / hhvm и вставьте это:

#! /bin/sh

test -x /usr/bin/hhvm || exit 0

case "" in
  start)
        /usr/bin/hhvm --config /etc/hhvm/server.hdf --user www-data --mode daemon
        ;;
  stop)
        start-stop-daemon --stop --quiet --oknodo --pidfile /var/run/hhvm/pid
        ;;

  reload|force-reload|restart|try-restart)
         stop
         start
        ;;

  status)
        echo "No status"
        ;;

  *)
        echo "Usage: /etc/init.d/hhvm {start|stop|restart|status}"
        exit 1
esac

exit 0

теперь нам нужно создать/etc/HHVM / server.файл hdf. Вот пример файла:https://gist.github.com/sinaa/9151973

и для/usr/share/hhvm/hdf / static.тип MIME.hdf файл, использовать этот: https://github.com/hhvm/packaging/blob/master/hhvm/deb/skeleton/usr/share/hhvm/hdf/static.mime-types.hdf

и, наконец, создайте каталоги:

  • /var/run / hhvm
  • /var/log / hhvm

и теперь просто запустите hhvm как сервис: / etc / init.перезапуск d/hhvm


автоматический способ: установка готовых пакетов (Ubuntu)

HHVM по умолчанию поставляется со всем выше, если вы используются готовые версии. Вы можете установить его, как показано ниже (источник):

# If this command is not found then do this: sudo apt-get install python-software-properties
sudo add-apt-repository ppa:mapnik/boost
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0x5a16e7281be7a449
echo deb http://dl.hhvm.com/ubuntu precise main | sudo tee /etc/apt/sources.list.d/hhvm.list
sudo apt-get update
sudo apt-get install hhvm

после перезагрузки

для автоматического запуска службы при загрузке выполните следующую команду:

sudo update-rc.d hhvm defaults