【发布时间】:2021-07-30 17:11:19
【问题描述】:
我希望能够读取和跟踪来自 journalctl 命令的日志,以进行日志监控。有一种奇怪的行为,它没有显示日志的最后一行。 我不明白发生了什么,并且非常感谢您对如何解决此问题的一些见解。
这是我当前的代码:
import sys
import subprocess
import select
args = ['journalctl', '-u', 'foo.service', '--follow']
f = subprocess.Popen(args, stdout=subprocess.PIPE)
p = select.poll()
p.register(f.stdout)
while True:
if p.poll(1):
line = f.stdout.readline()
if line:
print(line.strip())
请注意,如果我再次执行f.stdout.readline(),它会吐出最后一行。
感谢您的帮助!
【问题讨论】:
标签: python linux operating-system subprocess file-descriptor