【问题标题】:Xvfb command in docker supervisor conf not workingdocker supervisor conf 中的 Xvfb 命令不起作用
【发布时间】:2016-02-07 15:44:51
【问题描述】:

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

[program:Xvfb]
command=/usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log  &

当我在一个正在运行的 docker 实例中打开一个 shell 时,没有运行 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 中的行有什么问题?

【问题讨论】:

    标签: docker supervisord xvfb


    【解决方案1】:

    Supervisor 不会按照我原来的失败配置行处理 bash 特定的运算符,例如 -run-in-the -background '&' 或像 '>' 这样的重定向。 我通过使用 bash -c 解决了这个问题:

        [program:Xvfb]
        command=bash -c "/usr/bin/Xvfb :1 -screen 0 1024x768x16 &> xvfb.log"
    

    现在,当我进入 docker bash shell 时,会创建 Xvfb 窗口,等待我在代码的其他地方使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 2015-01-14
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多