Надежность цикла inotifywait

Как указал Эндрю Хенле, это произошло из-за ошибки в libtrash. Я только что выпустил новую версию , которая должна исправить это поведение.

0
24.10.2019, 13:11
2 ответа

Использовать режим монитора -m, чтобы inotifywaitне закрывался после изменения файловой системы, а вместо этого выводился на стандартный вывод. вы можете направить этот поток в скрипт чтения, который читает строки из inotofywait и выполняет вашу обработку.

1
28.01.2020, 02:29

Один из способов — запустить inotifywaitв режиме монитора, например:

inotifywait -m -q -r -e create --format '%w%f' "$watchpath" |
    while read -r path; do
        : # do something with path
    done

Тем не менее, между процессами все еще будет гонка, я не уверен, что есть способ избежать гонок с помощью утилит оболочки.

Даже справочная страница перечисляет это с оговорками.

The inotify API identifies affected files by filename. However, by the time an application processes an inotify event, the filename may already have been deleted or renamed.

1
28.01.2020, 02:29

Теги

Похожие вопросы