Файл можно удалить, пока он открыт процессом. Когда это происходит, запись каталога удаляется, но сам файл (индексный дескриптор и содержимое) остается; файл действительно удаляется только тогда, когда у него больше нет ссылок и он не открывается никаким процессом.
NFS - это протокол без сохранения состояния: операции могут выполняться независимо от предыдущих операций. Сервер даже может перезагрузиться, и как только он вернется в режим онлайн, клиенты продолжат доступ к файлам, как и раньше. Чтобы это работало, файлы должны быть обозначены своими именами, а не обработчиком, полученным при открытии файла (который сервер забудет при перезагрузке).
Соедините эти два понятия: что происходит, когда файл открывается клиентом и удаляется? Файл должен иметь имя, чтобы клиент, открывший его, мог получить к нему доступ.Но когда файл удаляется, ожидается, что после этого больше не будет файла с таким именем. Таким образом, серверы NFS превращают удаление открытого файла в переименование: файл переименовывается в .nfs…
( .nfs
, за которым следует строка букв и цифр).
Вы не можете удалить эти файлы (если попытаетесь,все, что происходит, это то, что новый .nfs…
появляется с другим суффиксом). В конечном итоге они исчезнут, когда клиент, у которого открыт файл, закроет его. (Если клиент исчезает до закрытия файла, может пройти некоторое время, пока сервер не заметит этого.)
Я решил проблему с модом ROOTer Golden Orb для OpenWRT. Работает «из коробки».