Современная реализация cat (sunos-4.0 1988) использует mmap () для отображения всего file, а затем вызывает 1x write () для этого пространства. Такая реализация не будет зацикливаться, пока виртуальная память позволяет отображать весь файл.
Для других реализаций это зависит от того, больше ли файл, чем буфер ввода-вывода.
Похоже, вам нужно добавить запись pidfile в свой код.
в начале
import os
и до первой попытки:
open('/var/run/emailnotifier.pid','w').write(str(os.getpid()))