我正在使用CoreOS运行Docker容器,该容器使用Debian最新作为基础,并安装了各种软件包,包括 super 用户和apache2。我可以使用以下命令启动并成功运行apache:
# /usr/bin/pidproxy /var/run/apache2.pid /bin/bash -c "source /etc/apache2/envvars && /usr/sbin/apache2 -DFOREGROUND -k start"
但是,当我将此命令粘贴在主管配置文件中时:
[program:apache2]
command=/usr/bin/pidproxy /var/run/apache2.pid /bin/bash -c "source /etc/apache2/envvars && /usr/sbin/apache2 -DFOREGROUND -k start"
redirect_stderr=true
并执行以下操作:
# supervisorctl start apache2
我得到以下答复:
apache2: ERROR (abnormal termination)
查看主管进程日志文件,我看到apache2命令的帮助输出,就好像
apache2 -h
这样被调用了。我不知道为什么当由supervisorctl(以root身份运行)逐字逐句执行时,以root身份(在命令行中以ssh身份进入容器)在命令行上运行时运行的命令为什么不起作用。朝正确方向的任何观点将不胜感激。
最佳答案
不确定为什么,但是在选项值中添加引号似乎可以解决问题,并允许我使用apachectl。无论主管在执行什么操作,还是从bash提示符输入信息,都必须具有解释命令的上下文。这是我的工作配置文件:
[program:apache2]
command=apachectl -D "FOREGROUND" -k start
redirect_stderr=true
关于apache - 无法通过Docker容器的supervisor启动apache,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25897962/