docker supervisor conf中的Xvfb命令不工作

docker supervisor conf中的Xvfb命令不工作,docker,supervisord,xvfb,Docker,Supervisord,Xvfb,我有一个基于Ubuntu的Docker映像,它在Dockerfile的末尾运行一个作为CMD的监管脚本。这将在启动时在容器中成功运行uwsgi和nginx。但是,附加在supervisor-app.conf末尾的以下内容无效: [program:Xvfb] command=/usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log & 当我将shell打开到正在运行的docker实例中时,没有正在运行的X实例: root@922

我有一个基于Ubuntu的Docker映像,它在Dockerfile的末尾运行一个作为CMD的监管脚本。这将在启动时在容器中成功运行uwsgi和nginx。但是,附加在supervisor-app.conf末尾的以下内容无效:

[program:Xvfb]
command=/usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log  &
当我将shell打开到正在运行的docker实例中时,没有正在运行的X实例:

root@9221694363ea:/# ps aux | grep X
root        39  0.0  0.0   8868   784 ?        S+   15:32   0:00 grep --color=auto X
但是,运行与supervisor-app.conf中完全相同的命令是有效的

root@9221694363ea:/# /usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log  &
 [1] 40
 root@9221694363ea:/# ps aux | grep X                                      
 root        40  1.2  0.1 170128 21604 ?        Sl   15:33   0:00 /usr/bin/Xvfb :1 -screen 0 1024x768x16
 root        48  0.0  0.0   8868   792 ?        S+   15:33   0:00 grep --color=auto X

那么supervisor app.conf中的行有什么问题呢?

supervisor没有按照我原来失败的配置行处理特定于bash的操作符,例如在后台运行“&”或像“>”这样的重定向。 我使用bash-c解决了这个问题,因此:

    [program:Xvfb]
    command=bash -c "/usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log"
现在,当我进入docker bash shell时,会创建一个Xvfb窗口,等待我在代码中的其他地方使用它