Пожалуйста: видео Ubuntu путь и CentOS способ умереть rm / -rf
.
Я перевел бы это как: Как возможно удалить файл, который кто-то все еще использует?
Ну, на Linux часть Вашей файловой системы находится в RAM, и часть находится на диске. То, когда процесс A открывает файл и сохраняет его открытым (скажите, что общая библиотека), затем обработайте A, получает копию "inode" файла. Это - структура данных, которая говорит систему, где файл находится на диске.
Теперь у нас есть два inodes, один на диске и один в RAM. Если второй процесс просит тот же файл, у нас есть три inodes. Теперь второй процесс удаляет inode. Это оставляет нас с 1 inode: это процесса A.
Это означает, что процесс A может все еще видеть файл (и считать его) даже при том, что никто больше не может (потому что inode на диске был удален, и второй процесс давно в прошлом). Как только процесс A завершается, последний остающийся inode удален, и файла действительно не стало.
Linux использует эту функцию следующими способами:
Таким образом, что произойдет? Сначала, не очень. В конечном счете ошибки будут зарегистрированы к удаленным файлам журнала, которыми не могут быть найдены некоторые файлы. При попытке выполнить новую команду, то она перестанет работать. Остановка процесса позволит ему заскочить в неопределенность. В конечном счете Вы будете с зависающей системой, которая не может быть перезагружена или закрыта, потому что те команды больше не существуют.
Можно протестировать его на себя, просто установить Linux в виртуальной машине. Не забывайте, что Вы должны будете sudo
или su
чтобы это работало.