6

Я хочу, чтобы tail -f файл, но собираюсь хвост после mv .

Man- страница хвоста говорит мне: -f означает --follow=descriptor поэтому mv не должен изменять inode?

Почему tail -f перестает работать после переименования?

1 ответ1

3

При чтении « tail источников кажется, что при чтении переименованного файла происходит сбой, но при мониторинге состояния файла происходит сбой.

Точнее, похоже, что tail ведет себя так (упрощенно):

  1. он читает файл до конца;
  2. затем настройте часы inotify , чтобы быть замеченным, когда что-то происходит с файлом;
  3. когда новое содержимое добавлено в файл, прочитайте снова до конца;
  4. затем вернитесь к шагу 2.

Когда вы перемещаете файл, inotify информирует tail , который в свою очередь решает удалить файл из списка отслеживаемых файлов. Кажется, это сделано намеренно, хотя мне не ясно, почему это так (и я ожидаю, что он продолжит следить за файлом после переименования). Соответствующие строки , как представляется, это.

Итак, проблема не в основной операционной системе Linux, а в том, как tail обрабатывает переименование файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .