Supervisord - 将进程stdout重定向到控制台

 浪人-zhao_433 发布于 2022-12-29 11:45

我打算使用supervisor运行多个进程,请在下面找到我的supervisord.conf文件:

[supervisord]

[program:bash]
command=xyz
stdout_logfile =/tmp/bash.log
redirect_stderr=true

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock

[unix_http_server]
file=/tmp/supervisor.sock ; path to your socket file

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

我希望将名为bash的进程的stdout重定向到supervisor控制台,以便在我启动supervisor时使用

/usr/bin/supervisord

命令,我可以看到子进程日志.我怎样才能做到这一点 ?我尝试将syslog用于stdout_logfile属性但它不起作用.

1 个回答
  • 您可以使用以下配置选项将程序的标准输出重定向到主管的标准输出:

    stdout_logfile=/dev/fd/1
    stdout_logfile_maxbytes=0
    

    说明:

    当进程打开/dev/fd/1(与其相同/proc/self/fd/1)时,系统实际克隆该进程的文件描述符#1(stdout).stdout_logfile因此使用它会导致supervisord程序的标准输出重定向到它自己的标准输出.

    stdout_logfile_maxbytes=0禁用日志文件轮换,这显然对stdout没有意义.不指定此选项将导致错误,因为默认值为50MB且supervisor不够智能,无法检测到指定的日志文件不是常规文件.

    欲获得更多信息:

    http://veithen.github.io/2015/01/08/supervisord-redirecting-stdout.html

    2022-12-29 11:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有