Ao tentar testar algo desconectado, lancei um loop infinito no meu terminator
emulador de terminal que imprimiu muitos dados para STDOUT. Depois de executá-lo por alguns minutos, notei que minha /tmp
partição estava cheia.
$ 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
Contudo, du
mostrou o diretório para estar vazio:
$ du -sch /tmp/
0 /tmp/
0 total
Corrida rm -rf /tmp
também não fez diferença. Todo esse espaço ocupado foi liberado quando eu fechei o terminal que estava executando o loop, então eu acho que ele foi retomado pelas informações de rolagem do terminal.
Eu sei disso tmpfs é um recurso de armazenamento projetado para imitar um sistema de arquivos. OK mas
Como é que isso funciona? É
/tmp
uma Arquivo em algum lugar (sim, eu sei que "tudo é um arquivo"), quero dizer, é um arquivo "normal" armazenado em algum lugar no disco rígido? É uma parte da minha partição swap? Da minha RAM? Se bem entendi, pode ser em RAM ou SWAP, dependendo do uso atual, mas eu não vi nenhum picos de RAM ou uso de SWAP enquanto/tmp
Estava Cheio.Onde / como as informações de rolagem do terminal são mantidas? Como não havia arquivos em
/tmp
ele não pode ser armazenado em um arquivo de texto simples, então onde está e como ele está ocupando espaço/tmp
?