Próbując przetestować coś niepołączonego, uruchomiłem nieskończoną pętlę na terminator
emulatorze terminala, który wydrukował dużo danych do STDOUT. Po uruchomieniu go przez kilka minut zauważyłem, że moja /tmp
partycja jest pełna.
$ 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
Pokazał jednak, że katalog jest pusty:
$ du -sch /tmp/
0 /tmp/
0 total
Bieganie też rm -rf /tmp
nie miało znaczenia. Całe to zajęte miejsce zostało zwolnione, kiedy zamknąłem terminal, który uruchomił pętlę, więc myślę, że zajęły go informacje przewijania terminala.
Wiem, że tmpfs to narzędzie do przechowywania zaprojektowane w celu naśladowania systemu plików. dobrze, ale
Jak to działa? Czy plik gdzieś (tak, wiem, że „wszystko jest plikiem”), to znaczy jest to „normalne” plik zapisany gdzieś na dysku twardym? Czy to część mojej partycji wymiany? Mojej pamięci RAM? Jeśli dobrze rozumiem, może być w pamięci RAM lub SWAP, w zależności od bieżącego użycia, ale nie widziałem żadnych skoków w użyciu pamięci RAM lub SWAP, gdy był pełny.
/tmp
/tmp
Gdzie / jak przechowywane są informacje przewijania z terminala? Ponieważ nie było w
/tmp
nim żadnych plików, nie można go zapisać w prostym pliku tekstowym, więc gdzie to jest i dlaczego zajmuje miejsce/tmp
?