Kaptain.
Telegram /
LinkedIn /
Email /
GIT /
RSS /
GPG /
Заказ печатных плат

№ 12523 В разделе
Sysadmin
от June 7th, 2024,
В подшивках: Linux, systemd
В новых дистрибутивах несмотря на стандарты создатели systemd продолжают ломать Linux. Дело в том, что во многих дистрибутивах /tmp начали располагать мало того, что в tmpfs, так еще и очищают через какой-то промежуток времени, вызывая серьезные сбои в программах и внезапные пропажи файлов.
Выводим размеры волюмов и замечаем вот такое безобразие.
$> df -h tmpfs 3.8G 17M 3.7G 1% /tmp
А теперь представьте как вы запускаете mc и заходите посмотреть содержимое архива на 10 гигов. Есть архивы, которые mc может обработать просто прочитав его заголовки (типа zip), а есть непрерывные архивы (например, tar.gz), которые бабахнут не просто 10 гигов, а распакуют в /tmp все содержимое архива, а там и все 50-100 гигов может быть. Это означает, что в /tmp резко закончится место и операция просмотра архива завершится с ошибкой. Ладно, допустим вы таки зашли в архив и все хорошо, работаете, смотрите файлы и тут бац, новая ошибка, неизвесно как, но распакованные файлы ПРОПАЛИ! Там же в /tmp располагаются файлы Libreoffice, ssh, ssh-agent и кучи другого системного софта. Представляете какие спецэффекты вас будут ждать, если затянете с ними работу более, чем на сутки?
А всему виной еще одно западло, которое приготовили нам создатели systemd:
Чтобы отключить монтирование /tmp как tmpfs нужно в systemd выключить tmp.mount:
sudo systemctl mask tmp.mount
Теперь все временные файлы в /tmp будут располагаться на диске как в любом нормальном linux.
Отключение любых очисток с костылями
systemctl mask systemd-tmpfiles-clean.timer
Также можно изменять поведение, если отредактировать конфиги в /usr/lib/tmpfiles.d или создать новые в /etc/tmpfiles.d.
Например, модифицировать /usr/lib/tmpfiles.d/fs-tmp.conf для очищения разово при загрузке, как описано в документации:
D! /tmp 1777 root root -
А еще меня больше всего вымораживает вот это правило: /usr/lib/tmpfiles.d/fs-usr-local.conf
d /usr/local/bin 0755 root root - d /usr/local/include 0755 root root - d /usr/local/lib 0755 root root - d /usr/local/libexec 0755 root root - d /usr/local/man 0755 root root - d /usr/local/man/man1 0755 root root - d /usr/local/man/man2 0755 root root - d /usr/local/man/man3 0755 root root - d /usr/local/man/man4 0755 root root - d /usr/local/man/man5 0755 root root - d /usr/local/man/man6 0755 root root - d /usr/local/man/man7 0755 root root - d /usr/local/man/man8 0755 root root - d /usr/local/man/man9 0755 root root - d /usr/local/man/mann 0755 root root - d /usr/local/sbin 0755 root root - d /usr/local/share 0755 root root - d /usr/local/src 0755 root root - d /usr/local/lib64 0755 root root -
Программ в /usr/local просто хренова гора установлена обычно.
Fortune cookie: "Never before have I encountered such corrupt and foul-minded perversity! Have you ever considered a career in the Church?" [Black Adder II]
Leave a Reply