При автоматизации через subprocess обычный timeout не помогает: если команда запускает дочерние процессы, родитель завершается, а цепочка продолжает висеть.
Решение на Linux — запускать каждую задачу в отдельной группе процессов. При превышении лимита можно завершать всю группу целиком, а не только родительский процесс.
Полезная техника для надёжных скриптов и ботов.