def follow(self, lines=20):
if not self.exists:
yield "Instance does not exist."
return
process = popen("tail", "-n", str(lines), "-f", self.logpath)
streams = set([process.stdout, process.stderr])
try:
while self.is_running and streams:
readable, _, errors = select.select(streams, (), (), 0.5)
for stream in readable:
line = stream.readline()
if not line:
streams.discard(stream)
continue
yield line.rstrip("\n").rstrip("\r")
finally:
send_signal(process.pid, signal.SIGKILL)
评论列表
文章目录