Почему поведение в режиме демона не запускается автоматически после перезагрузки сервера?
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