Supervisord不会显示进程中的标准输出

Vag*_*rdi 7 logging supervisord docker

尝试使用docker中的主管捕获我的应用程序的日志.

这是我的supervisord.conf:

[supervisord]
logfile=/dev/null
nodaemon=true

[program:autofs]
command=automount -f
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0

[program:split-pdf]
command=bin/split-pdf-server
directory=/root/split-pdf
redirect_stderr=true
stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
Run Code Online (Sandbox Code Playgroud)

启动容器后一切正常,我可以看到我的应用程序运行的结果(它在网络共享上创建pdf文件)

但是日志显示我的应用没有输出:

015-07-02 00:39:26,119 CRIT Supervisor running as root (no user in config file)
2015-07-02 00:39:26,124 INFO supervisord started with pid 5
2015-07-02 00:39:27,127 INFO spawned: 'split-pdf' with pid 8
2015-07-02 00:39:27,130 INFO spawned: 'autofs' with pid 9
2015-07-02 00:39:28,132 INFO success: split-pdf entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2015-07-02 00:39:28,132 INFO success: autofs entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Run Code Online (Sandbox Code Playgroud)

这是我在附加到docker容器时看到的唯一输出.

我在ubuntu 15.04 docker 1.7.0上

这不是这个问题的重复,因为我在容器中运行多个进程.

cwe*_*ske 4

这与管道缓冲有关。

我能够通过在无缓冲模式下运行 python 来规避这个问题:

$ docker run -e PYTHONUNBUFFERED=1 imagename
Run Code Online (Sandbox Code Playgroud)

请参阅主管标准输出问题 #10有关此问题的讨论,