Linux Labs

Система изнутри: ресурсы, ядро, процессы / Ступень 4 из 12

ulimit и sysctl: потолки системы

Не запущена Запускается обычно ~20 с
Выйти из урока

Шаг 6 из 10 · теория · 4 мин

Правка на время загрузки

Чтобы значение пережило перезагрузку, его записывают в файл, и система ставит его при каждом старте.

При загрузке служба systemd-sysctl читает файлы *.conf из /etc/sysctl.d, /run/sysctl.d и /usr/lib/sysctl.d и ставит записанные в них значения. В файле — строки вида имя = значение:

bash
# /etc/sysctl.d/60-inotify.conf
fs.inotify.max_user_watches = 65536

Файлы применяются по порядку имён из всех каталогов вместе. Если параметр встречается в двух файлах, остаётся значение из последнего, поэтому имена файлов начинаются с числа. Файл с другим расширением, например .txt или .bak, служба пропускает.

Применить файлы без перезагрузки — sudo sysctl --system. Она читает те же каталоги в том же порядке и печатает каждый файл и каждое значение: по выводу видно, дошла ли до ядра твоя строка.

Проверь себя 1 вопрос

В /etc/sysctl.d/10-watches.conf стоит fs.inotify.max_user_watches = 65536, а в /etc/sysctl.d/90-desktop.conf — fs.inotify.max_user_watches = 16384. Какое значение будет у параметра после загрузки?

  • Величина значения роли не играет: файлы применяются по порядку имён, и 90-desktop.conf идёт после 10-watches.conf.

  • Спора нет: каждый файл просто ставит значение, и остаётся последнее. sudo sysctl --system показывает обе строки по порядку.

Файлы применяются по порядку имён, и последнее записанное значение остаётся. 90-desktop.conf идёт после 10-watches.conf, поэтому после загрузки — 16384. Порядок файлов виден в выводе sudo sysctl --system.

Главное в шаге

  • sysctl -w меняет параметр до перезагрузки; на старте ядро начинает со своих значений.
  • Постоянное значение — строка имя = значение в файле *.conf в /etc/sysctl.d; при загрузке её ставит systemd-sysctl.
  • sudo sysctl --system применяет файлы сразу; из двух файлов с одним параметром остаётся значение последнего по имени.
Ubuntu 24.04
Загрузка…