Próbując przetestować coś niepołączonego, uruchomiłem nieskończoną pętlę na terminatoremulatorze terminala, który wydrukował dużo danych do STDOUT. Po uruchomieniu go przez kilka minut zauważyłem, że moja /tmppartycja 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
duPokazał jednak, że katalog jest pusty:
$ du -sch /tmp/
0 /tmp/
0 total
Bieganie też rm -rf /tmpnie 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/tmpGdzie / jak przechowywane są informacje przewijania z terminala? Ponieważ nie było w
/tmpnim żadnych plików, nie można go zapisać w prostym pliku tekstowym, więc gdzie to jest i dlaczego zajmuje miejsce/tmp?