1

В Linux кажется, что когда вы изменяете / устанавливаете значения в sysctl, sysctl будет применять эти настройки каждую загрузку «на лету», но эти настройки будут оставаться настройками по умолчанию до запуска sysctl и применять значения, заданные пользователем.

Как изменить значение по умолчанию, чтобы они постоянно были пользовательскими, и, таким образом, исключить временной интервал, являющийся их значением по умолчанию?

Или я ошибаюсь в первую очередь (sysctl фактически постоянно меняет значение)?

1 ответ1

3

Обновленный ответ

Значение по умолчанию для многих параметров ядра sysctl компилируется в само ядро.

Пример: kernel.numa_balancing_scan_delay_ms по умолчанию имеет значение 1000 в ./kernel/sched/fair.c, который загружается в ./kernel/sysctl.c.

Вы можете изменить их во время выполнения с помощью sysctl 3. systemd делает это при загрузке с помощью systemd-sysctl.service начале процесса загрузки.

По некоторым причинам кажется, что вы инициализируете что-то очень рано, что параметр ядра не может быть установлен позже и должен быть установлен при загрузке. Если служба ранней загрузки все еще слишком поздняя и вы не можете допустить, чтобы параметры настройки sysctl слишком поздними, возможно, вы можете установить параметры в boot 2 в строке ядра вашего загрузчика.

Если вы не можете этого сделать, вам может понадобиться скомпилировать собственное ядро 1 со значениями по умолчанию, которые вы хотите.

Из Arch Linux вики:

Есть три способа передать опции ядру и таким образом контролировать его поведение:

  1. При сборке ядра. Посмотрите Компиляцию Ядра для деталей.
  2. При запуске ядра (обычно при запуске из загрузчика).
  3. Во время выполнения (через файлы в /proc и /sys). Смотрите sysctl для деталей.

Оригинальный ответ

Установите значения в /etc/sysctl.conf или в файле *.conf в /etc/sysctl.d/ .

Как только они установлены, вы можете перезагрузить конфигурацию, запустив sudo sysctl --system .


Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .