如何在Docker中将HHVM作为守护进程运行?

HHVM在使用hhvm -m daemon在Docker中运行时不会进入hhvm -m daemon 。 该过程开始,但不会返回到命令提示符。 ctl^c杀死进程。 我的解决方法如下所示:

  1. 安装screen
  2. 运行exec >/dev/tty 2>/dev/tty </dev/tty
  3. 运行screen
  4. screen运行HHVM

任何想法为什么?

谢谢。

自从你问这个问题以来,你可能已经解决了这个问题(或者在hhvm的最新版本中已经修复了这个问题),但是我还是会添加一些想法,因为我也是这么做的。

守护进程模式( hhvm -m daemon

似乎目前正常工作(Ubuntu 12.04):

 root@5ba718633f3a:~# hhvm -m daemon Log file not specified under daemon mode.\n\n root@5ba718633f3a:~# ps aux | grep hhvm root 123 0.8 9.7 554212 36388 ? Ss 21:33 0:00 hhvm -m daemon 

分离服务器模式( hhvm -m server &

 root@5ba718633f3a:~# hhvm -m server & [1] 151 root@5ba718633f3a:~# ps aux | grep hhvm root 151 2.3 11.5 631128 43212 pts/0 Sl 21:36 0:00 hhvm -m server 

服务器模式w / supervisord

在你的supervisordconfiguration中:

 [program:hhvm] directory=/var/www command=hhvm -m server autostart=true autorestart=true redirect_stderr=true 

假设你使用pipe理员,那么这个选项可能是最无痛的,除非你需要开始/停止临时的hhvm instancess。 另外,我确定你知道,但是supervisord进程configuration中的directory选项也可以通过hhvm CLI参数复制(所以它不是基于CWD的),例如:

 hhvm -m daemon -v Server.SourceRoot=/var/www 

希望有所帮助。 这么晚才回复很抱歉!