主管有日志中断
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
我添加了每 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