Как переопределить настройки в /etc/sysctl.conf CentOS 7? - PullRequest
0 голосов
/ 07 апреля 2020

Я пытался установить определенные параметры ядра с помощью файла /etc/sysctl.conf в Cent OS 7.5. Я скопировал файл "/etc/sysctl.conf" в /etc/sysctl.d/sysctl.conf и обновил некоторые параметры и перезагрузил настройки, используя "sysctl --system". Но я вижу, что параметры внутри /etc/sysctl.conf перезаписывают имеющиеся внутри (/etc/sysctl.d/sysctl.conf). (Я также вижу то же самое, когда я выполняю команду, т.е. сначала применяются параметры из /etc/sysctl.d/sysctl.conf, а затем применяются параметры из /etc/sysctl.conf, что вызывает проблему.)

Но согласно man-странице sysctl --system должна была игнорировать настройки внутри "/etc/sysctl.conf", так как я создал файл с таким же именем внутри "/etc/sysctl.d/sysctl.conf", который читается первым. (Ссылка: http://man7.org/linux/man-pages/man8/sysctl.8.html).

    --system
              Load settings from all system configuration files. Files are
              read from directories in the following list in given order
              from top to bottom.  ***Once a file of a given filename is
              loaded, any file of the same name in subsequent directories is
              ignored.***
              /run/sysctl.d/*.conf
              /etc/sysctl.d/*.conf
              /usr/local/lib/sysctl.d/*.conf
              /usr/lib/sysctl.d/*.conf
              /lib/sysctl.d/*.conf
              /etc/sysctl.conf ```

1 Ответ

1 голос
/ 08 апреля 2020

Страница man не соответствует исходному коду sysctl. c. В соответствии с исходным кодом функции PreloadSystem() она обрабатывает файлы * .conf в различных каталогах поиска sysctl.d (пропуская те имена файлов * .conf, которые уже были просмотрены, как описано на странице руководства). Затем он обрабатывает файл /etc/sysctl.conf по умолчанию, если он существует, без проверки того, было ли уже просмотрено имя файла sysctl.conf.

Таким образом, параметры в /etc/sysctl.conf не могут быть изменены файлы * .conf в /etc/sysctl.d/ и других каталогах sysctl.d, потому что настройки в /etc/sysctl.conf всегда применяются в последнюю очередь.

...