История изменений
Исправление SpaceRanger, (текущая версия) :
import subprocess
import os
import sys
def tail_forever(file, pat):
os.chdir(sys.path[0])
with open("log", "a+") as log:
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")
if __name__ == "__main__":
tail_forever(sys.argv[1], sys.argv[2])
Подумал, что наверное не стоит открывать файл, за которым идёт наблюдение, ибо tail и так его открывает. ПОнаблюдаю. МОжет быть в этом проблема
Исправление SpaceRanger, :
import subprocess
import os
import sys
def tail_forever(file, pat):
os.chdir(sys.path[0])
with open("log", "a+") as log:
try:
p = subprocess.Popen(["tail", "-F", file], stdout=subprocess.PIPE)
while 1:
line = p.stdout.readline().decode()
if pat in line:
# print(line.strip())
log.write(line)
log.flush()
# print(f"[{datetime.datetime.now()}] {line.decode().strip()}")
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")
if __name__ == "__main__":
tail_forever(sys.argv[1], sys.argv[2])
Подумал, что наверное не стоит открывать файл, за которым идёт наблюдение, ибо tail и так его открывает. ПОнаблюдаю. МОжет быть в этом проблема
Исходная версия SpaceRanger, :
import subprocess
import os
import sys
pattern = "pugw_250"
def tail_forever(file, pat):
os.chdir(sys.path[0])
with open("log", "a+") as log:
try:
p = subprocess.Popen(["tail", "-F", file], stdout=subprocess.PIPE)
while 1:
line = p.stdout.readline().decode()
if pat in line:
# print(line.strip())
log.write(line)
log.flush()
# print(f"[{datetime.datetime.now()}] {line.decode().strip()}")
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")
if __name__ == "__main__":
tail_forever(sys.argv[1], sys.argv[2])
Подумал, что наверное не стоит открывать файл, за которым идёт наблюдение, ибо tail и так его открывает. ПОнаблюдаю. МОжет быть в этом проблема