Используя команду lsof, я могу определить, используется ли файл каким-либо процессом, но мне нужно атомарно проверить файл для использования и переместить его, только если он не используется.Эти файлы используются различными другими программами, которые я не могу контролировать, поэтому я не могу использовать консультативные блокировки.Цель состоит в том, чтобы не дать другим процессам изменить этот файл, поэтому просто переместить файл, пока процесс открыт, не в порядке.Любое решение?
ОБНОВЛЕНИЕ: мне только что пришло в голову решение, которое, я думаю, соответствует моим целям.Конечная цель - обработать эти файлы в их окончательном состоянии, когда другие программы закончат их изменение.Если я переместу файл в другой каталог, я смогу использовать lsof, чтобы проверить, используется ли он по старому пути;если это так, я просто проверяю позже, пока он больше не используется, а затем обрабатываю файл.Перемещая файл в другой каталог, он скрывает файл от пользователей и программы.Я не хочу, чтобы пользователи и программы видели файл в старом каталоге, потому что это дает им возможность открыть файл между тем, как я использую lsof, и обработать файл, что означает, что я буду обрабатывать файл в измененном состоянии.