HipHop / HHVM可以作为守护进程运行(因此在重新启动后会自动启动)
sudo /usr/bin/hhvm --mode daemon --config /etc/hhvm/server.hdf
运行时,它完美运行(表明配置正常)。但重新启动机器后,HHVM消失了,需要手动重启。以上行包括这些配置已从HHVM创建者的官方教程中删除。像sudo service hhvm start
这样的经典服务语法也可以很好地工作,但不会超过机器重启。
/var/log/hhvm/error.log中的HHVM错误日志在每次重新启动时记录此行:Unable to open pid file /var/run/hhvm/pid for write
。 /etc/hhvm/server.hdf
在第一行有PidFile = /var/run/hhvm/pid
。由于默认情况下它附带HHVM,我不想更改它。我认为 sudo 就是问题所在。没有sudo HHVM将无法运行。 Chmod 777'将pid文件指向另一个空文件并不能解决问题。
将HHVM作为守护程序安装的正确方式是什么?
答案 0 :(得分:17)
参考HHVM's own packaging material,你需要运行hhvm作为守护进程。
所以,在/etc/init.d/hhvm创建一个文件并粘贴它:
#! /bin/sh
test -x /usr/bin/hhvm || exit 0
case "$1" 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)
$0 stop
$0 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-types.hdf文件,请使用: https://github.com/hhvm/packaging/blob/master/hhvm/deb/skeleton/usr/share/hhvm/hdf/static.mime-types.hdf
最后,创建目录:
现在只需将hhvm作为服务启动: /etc/init.d/hhvm restart
如果您使用的是预建版本,默认情况下HHVM会带有以上所有内容。您可以按以下(source)安装它:
# 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