1

Я считаю, что нашел проблему с Linux Mint. (Версия 17? - Как я могу это проверить?)

У меня есть программа, которая работает в течение нескольких дней и создала выходной файл размером в несколько сотен гигабайт.

У меня заканчивалось свободное место (осталось около 10 ГБ), поэтому я остановил программу с помощью CTRL-Z в точке, где выходной файл все еще был открыт, но я мог убедиться, что в тот момент, когда операции чтения / записи не выполнялись Программа была остановлена.

Затем я удалил файл. (Не удалось открыть его, чтобы очистить содержимое, оно было слишком большим!)

Затем я воссоздал файл. (Возможно, это не удивительно, что это вызвало у меня проблемы, я вряд ли мог ожидать, что это будет работать правильно.)

НО у меня 2 проблемы. Во-первых, кажется, что программа больше не пишет ни в один из выходных файлов? (Есть 3 отдельных, только один был удален.)

Во-вторых, нет никакого дополнительного свободного пространства? Я не могу понять, почему это? Там должно быть дополнительные 100 ГБ ... но нет?

Почему это так и могу ли я это "исправить"? (Я не хочу, чтобы моя система вечно сосала с дырой в 100 ГБ.)

2 ответа2

0

С помощью команды "lsof" (LiSt Open Files) вы можете проверить, будет ли удаленный файл все еще использоваться определенным процессом (через дескриптор / обработчик файла, который вы можете увидеть в / proc / $ PID_of_process / fd /). Если это так, сборщик мусора не освободит пространство, указанное этим индексом, даже если вы удалили его последнюю жесткую ссылку с помощью "rm" (или любой другой подобной команды).

0

Это ожидаемое поведение. Файл на самом деле не удаляется до тех пор, пока все пользователи файла не закроют свое «соединение» с файлом (то есть освободят дескриптор файла).

Что вам нужно сделать, это закрыть программу, а не просто приостановить ее. Это приведет к тому, что программа освободит свое соединение, что позволит файловой системе удалить файл.

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