Path units systemd: событие изменения файла не заменяет протокол его готовности

Запросить

Фотография конкретного исполнения не приложена.

Каталог входящих файлов удобно наблюдать через path unit, но появление события ещё не означает завершение записи отправителем. В справочнике 262 PathChanged связан, в частности, с закрытием файла после записи, а PathModified реагирует также на сами записи. Выбор триггера должен соответствовать способу передачи данных.

Path units используют inotify и наследуют его ограничения. Например, изменения на удалённой NFS файловой системе, выполненные другой машиной, нельзя считать надёжно наблюдаемыми этим механизмом. Поэтому одинаковый путь в конфигурации не обеспечивает одинаковое поведение локального диска и сетевого каталога.

DirectoryNotEmpty проверяет наличие файлов, в том числе при начальной активации. После завершения вызванной службы условия проверяются снова. Если приложение оставило входящие данные на месте и постоянно выходит с ошибкой, возможен быстрый цикл запусков до срабатывания ограничителя. Менеджер не создаёт автоматически реестр успешно обработанных файлов.

В проекте определяют признак готовности, владение очередью и подтверждение обработки. На стенде проверяют медленную запись, несколько файлов, перезапуск обработчика и ошибочный файл. Каждое задание должно иметь понятный дальнейший статус; число уведомлений об изменении каталога не используют как счётчик доставленных прикладных документов.

Основание — Official systemd manual edition262, cited sections only, разделы systemd.path Description; PathChanged; PathModified; DirectoryNotEmpty. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Материал относится к справочникам systemd 262. Установленные Linux-дистрибутив, сборка systemd и возможности ядра не проверялись; изменения служб и настроек не выполнялись.

Все разборы