【发布时间】:2013-07-21 22:18:06
【问题描述】:
我正在使用 supervisord 来管理一个需要在后台运行的 php 程序。该程序将事件记录到文件worker_log。在我正在使用的supervisord.conf 中配置它很简单:
stderr_logfile=/var/log/supervisord/worker_log;
但是,我希望写入日志的事件能够自行添加时间戳。我无法控制 php 程序,因此不能选择装饰它的日志。我想我要做的就是注释掉上面的日志配置,并通过主管命令配置中的命令行管道来装饰程序:
command=php /www/myapp/worker.php 2>&1 | sed "s/^/`date` /" > /var/log/supervisord/worker_log;
手动运行此命令时,它似乎工作正常。但是,supervisord 似乎以某种方式阻止它正常运行,我不知道如何。 worker.php 执行良好,但在此配置中,它的报告被抑制。而且,正因为如此,它当然不会添加时间戳。
是否有人对此有足够的了解以提供有关如何实现为工作人员的输出添加时间戳的目标的指导?
【问题讨论】:
-
命令参数是否可能不支持管道?或者可能是run时释放终端的命令,哪个supervisord不支持?
标签: php bash supervisord