无法获取监控进程的输出

2024-04-27 11:05:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个测试可执行文件,看看我是否可以捕捉到一个由主管监控的程序的输出。在

测试仪.py:

#! /usr/bin/env python

import time, os
pid = os.getpid()
print "EXECUTING ON %s" % pid
while True:
    time.sleep(5)
    print "HOLLER %s" % pid

监督人.conf:

^{pr2}$

但当我试图在supervisortl中对进程运行tail时,什么都没有。在


Tags: pyimport程序env可执行文件bintimeos
1条回答
网友
1楼 · 发布于 2024-04-27 11:05:35

你已经有一段时间没问了,但如果你仍然感兴趣,对于任何有同样问题的人:

在本例中,Python正在缓冲输出,在刷新到stdout之前,您不会看到它。您可以在程序中使用sys.stdout.flush()强制刷新,但修复它的最干净的方法可能是使用Python解释器的-u标志以无缓冲模式运行脚本:

监督人.conf

[program:mytester]
command=python -u {path}/tester.py

(有同样的问题,在主管的mailing list中找到了解决办法)

相关问题 更多 >