[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属性,但它不起作用。
您可以使用以下配置选项将程序的stdout重定向到Supervisor的stdout:
stdout_logfile=/dev/fd/1
stdout_logfile_maxbytes=0
说明:
/dev/fd/1
(与/proc/self/fd/1
)时,系统实际上会克隆该进程的文件描述符#1(stdout)。因此,将其用作stdout_logfile
会导致supervisord
将程序的stdout重定向到它自己的stdout。stdout_logfile_maxbytes=0
禁用日志文件循环,这显然对stdout没有意义。未指定此选项将导致错误,因为默认值为50MB,而且supervisor不够聪明,无法检测指定的日志文件不是常规文件。我使用supervisord作为Docker容器的入口点,如https://docs.Docker.com/articles/using_supervisord/中所述,我希望所有日志都写入stdout,这样我就可以利用内置工具,如或systemd的日志,特别是在CoreOS上运行容器时。 对于stderr,子进程有选项,是否可以以某种方式将子进程stdout重定向回supervisord,而不处
问题内容: 我想从Groovy程序中执行foo.bat,并将生成的进程的输出重定向到stdout。Java或Groovy代码示例都可以。 foo.bat可能需要花费几分钟才能运行并生成大量输出,因此我希望在生成后立即查看输出,而不是必须等到该过程完成之后才能立即查看所有输出。 问题答案: 它使用一个类读取执行的程序生成的所有输出,并将其显示在其自己的stdout中。
问题内容: 我在cyberciti.biz的评论中看到了这个有趣的问题。 我发现我什至找不到在sh的单行命令中执行此操作的灵活方法。 到目前为止,我对解决方案的想法是: 但是您会看到,这不是同步的,而且致命的是,它是如此丑陋。 欢迎与您分享这个想法。:) 问题答案: 你要 这里的顺序很重要。假设stdin(fd 0),stdout(fd 1)和stderr(fd 2)最初都连接到tty,因此 首先
我有一个调用函数的PowerShell脚本。我正在努力实现所有这些,但不确定如何实现: 将标准输出写入控制台并输出。txt 将STDERR写入控制台并输出。txt和err。txt 确保所有STDOUT和STDERR输出仍按其生成的顺序 这就是我到目前为止所拥有的将STDOUT和STDERR写入文件的功能,但它不能完成我需要的其余部分。
问题内容: 我想将子进程的stderr输出重定向到stdout。常量应该这样做,不是吗? 然而, 确实 输出了一些东西。为什么会这样,如何在stdout上得到错误消息? 问题答案: 仔细阅读源代码即可得出答案。特别是,该文档在显示以下内容时会产生误导: 表示(…)的特殊值表示标准错误应与标准输出进入同一 句柄 。 由于在求值时stdout设置为“默认”(技术上来说),因此stderr也设置为“默认
问题内容: 我想在JavaFX TextArea中显示控制台输出…不幸的是,我找不到JavaFX的任何有效示例,而只能找到Java Swing的实例,在我看来,这似乎不起作用。 编辑: 我尝试遵循以下示例:http : //unserializableone.blogspot.ch/2009/01/redirecting-systemout-and-systemerr- to.html 并扩展了我