gpt4 book ai didi

logging - Supervisord 不显示通过 docker 查看的进程的标准输出

转载 作者:IT老高 更新时间:2023-10-28 21:25:58 24 4
gpt4 key购买 nike

尝试使用 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

启动容器后一切正常,我可以看到我的应用程序运行的结果(它在网络共享上创建 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)

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

我在 ubuntu 15.04 docker 1.7.0

这不是 this question 的副本,因为我在一个容器中运行多个进程。

最佳答案

这与管道缓冲有关。

我可以通过在 unbuffered mode 中运行 python 来规避这个问题。 :

$ docker run -e PYTHONUNBUFFERED=1 imagename

supervisor-stdout issue #10对此进行讨论。

关于logging - Supervisord 不显示通过 docker 查看的进程的标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com