Пытаясь проверить что-то не подключенное, я запустил бесконечный цикл на моем эмуляторе терминала terminator
который печатал много данных в STDOUT. Через несколько минут я заметил, что мой раздел /tmp
переполнен.
$ df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 68G 21G 44G 33% /
udev 10M 0 10M 0% /dev
tmpfs 800M 1.2M 799M 1% /run
/dev/disk/by-uuid/e29c6006c5c6 68G 21G 44G 33% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.2G 140K 3.2G 1% /run/shm
/dev/sda6 290G 204G 72G 75% /home
/dev/sda3 79G 51G 28G 65% /winblows
tmpfs 3.2G 3.2G 0G 100% /tmp
Тем не менее, du
показал, что каталог пуст:
$ du -sch /tmp/
0 /tmp/
0 total
Запуск rm -rf /tmp
не имел значения. Все это занятое пространство было освобождено, когда я закрыл терминал, который выполнял цикл, поэтому я предполагаю, что он был занят информацией прокрутки терминала.
Я знаю, что tmpfs - это хранилище, предназначенное для имитации файловой системы. Да, но
Как это работает? Является ли
/tmp
файлом где-то (да, я знаю, что "все является файлом"), я имею в виду, что это "обычный" файл, хранящийся где-то на жестком диске? Это часть моего раздела подкачки? Моей оперативной памяти? Если я правильно понимаю, это может быть либо в ОЗУ или SWAP в зависимости от текущего использования, но я не видел пиков в использовании ОЗУ или SWAP, пока/tmp
был полон.Где / как хранится информация прокрутки с терминала? Поскольку в
/tmp
не было файлов, его нельзя сохранить в простом текстовом файле, так где он и почему он занимает место в/tmp
?