"Липкий бит относился к исполняемым программам, отмечающим система для хранения изображения программы в памяти после того, как программа закончила работать".
Я думаю, что это - довольно устаревшая информация, сегодня самые современные Unixes игнорируют это. В Linux липкий бит только важен для каталогов. Посмотрите здесь и довольно информативная статья Wikipedia.
Так или иначе в том старом поведении изображение (только "код", не данные) было только сохранено в виртуальной памяти - обычно подкачанным, не в реальной памяти, чтобы выполнить его быстрее в следующий раз.
Похоже, что монтирования остались, но стали недоступными.
В качестве теста я сделал следующее:
root@localhost:~# mkdir tmp root@localhost:~# unshare -m bash root@localhost:~# mount -t tmpfs tmpfs tmp
root@localhost:~# free -m total used free shared buff/cache available Mem: 9885 2966 681 404 6237 6148 Swap: 8191 293 7898 root@localhost:~# dd if=/dev/urandom of=tmp/dummy bs=1M count=200 200+0 records in 200+0 records out 209715200 bytes (210 MB, 200 MiB) copied, 12.0075 s, 17.5 MB/s root@localhost:~# free -m total used free shared buff/cache available Mem: 9885 2966 481 604 6437 5948 Swap: 8191 293 7898
root@localhost:~# exit root@localhost:~# free -m total used free shared buff/cache available Mem: 9885 2963 484 604 6437 5951 Swap: 8191 293 7898
В то время как, если я размонтирую tmpfs, общее количество общее
возвращается к исходному значению.
Невозможно добавить комментарий, потому что недостаточно повторений, так что вот оно :Я сделал точно такой же тест, как и jpa, на немодифицированном растяжке Debian, и память вернулась к исходному значению, хотя я НЕ размонтировал. Так что, кажется, это поведение изменилось.
http://man7.org/linux/man-pages/man7/namespaces.7.html
подразумевает это, по крайней мере, говоря:
Bind mounting (see mount(2)) one of the files in this directory to somewhere else in the filesystem keeps the corresponding namespace of the process specified by pid alive even if all processes currently in the namespace terminate.
Значит, отказ от этого разрушает пространство имен (? ).
Меня интересовал тот же вопрос, поэтому я провел небольшой тест (на ядре 4.20.0, используя unshare from util -linux 2.33; man-страница для unshare в этой версии содержит некоторые заметки об общем/частном монтировании, которые стоит прочитать, и YMMV, если вы используете более старую версию ).
TL;DR:Да, файловая система размонтируется, когда завершается последний процесс в пространстве имен.
В моем случае я тестирую устройство dm-6
, и оно не смонтировано во «внешнем» пространстве имен.
Окно 1:
cd /sys/fs/ext4
ls -d dm-6
# No such file or directory
Окно 2 :unshare -m
mount /dev/dm-6 /mnt/tmp
# don't exit yet, keep the namespace active
Окно 3 :Сделайте то же самое, что и окно 1. Окно 1:
ls -d dm-6
# exists now
Окно 2 :Выход из среды unshare
Окно 1 :Проверьте еще раз, dm-6
все еще существует
Окно 3 :Выход из среды unshare
Окно 1 :Проверить еще раз, dm-6
снова нет
Еще одна полезная демонстрация/тест :Аналогичная идея, но вместо 3 окон вход и выход из окна 2 дважды. Проверьте dmesg
или журналы и убедитесь, что в этом случае сообщение ядра о том, что оно смонтировало файловую систему, появляется дважды.