Всем привет. Проблема заключается в том, что через какое то время программа ниже перестаёт либо писать в файл, либо отслеживать нужное в исходном - этого я пока понять не могу. Сама программа продолжает висеть в процессах, отсюда я смею предположить, что она какбэ продолжает работать. А вот что нарушает её нормальное функционирование понять не могу
import subprocess
import os
import sys
def tail_forever(file, pat):
os.chdir(sys.path[0])
with open("log", "a+") as log:
try:
with open(file, "r") as f:
try:
p = subprocess.Popen(["tail", "-f", file], stdout=subprocess.PIPE)
while 1:
line = p.stdout.readline().decode()
if pat in line:
log.write(line)
log.flush()
elif not line:
break
except KeyboardInterrupt:
print("KB INT")
log.write("INTERRUPTED FROM KB: ")
print("AFTER KB")
log.flush()
except Exception:
log.write("UNEXPECTED ERROR: ", sys.exc_info()[0])
log.flush()
finally:
log.close()
sys.exit("EXIT")
finally:
f.close()
if __name__ == "__main__":
tail_forever(sys.argv[1], sys.argv[2])
Есть у кого какие идеи? Всем заранее спасибо. Версия питона 2.6.6, если что