主管有日志中断

supervisor has logs breaks

我添加了每 5 秒打印一次文本的程序。到主管服务,当我阅读输出日志时,有时会出现如下中断。哪里有问题?

我登录到 supervisorctrl,在这种模式下我: tail test_s 我有时会像下面这样在报告中出现中断,现在我 15:06 并且有一个暂停

... You run test program using Supervisor at 15-02-52. Good job Darek :). kupa4 ... You run test program using Supervisor at 15-02-57. Good job Darek :). kupa4

... You run test program using Supervisor at 15-03-02. Good job Darek :)

我的程序

#!/usr/bin/env python3.6
from datetime import datetime
import time
import sys


while True:
    print(f"You run test program using Supervisor at {datetime.now().strftime('%H-%M-%S')}.")
    print("Good job Darek :).")
    print("...")
    time.sleep(5)

他在supervisor中的配置

[program:test_s]
command=/home/darek/PycharmProjects/Small_programs/shell_scripts/test/test_s.py
autostart=true
autorestart=true
stderr_logfile=/var/log/test_s.err.log
stdout_logfile=/var/log/test_s.out.log

听起来您的输出正在缓冲。您是否尝试过禁用缓冲?

您可以通过在 supervisord.conf 文件中设置 PYTHONUNBUFFERED 环境变量来完成此操作,如下所示:

[program:test_s]
environment=PYTHONUNBUFFERED=1
command=/home/darek/PycharmProjects/Small_programs/shell_scripts/test/test_s.py
autostart=true
autorestart=true
stderr_logfile=/var/log/test_s.err.log
stdout_logfile=/var/log/test_s.out.log

或者,您可以 运行 带有 -u 标志的脚本。

编辑:如果你想使用 -u 标志,你可以修改你的 supervisord.conf 如下:

command=python3 -u /home/darek/PycharmProjects/Small_programs/shell_scripts/test/test_s.py