slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Аватара пользователя
sunjob
Сообщения: 188

slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение sunjob »

добрый день

на счет первого

Код: Выделить всё

/etc/sysctl.conf
все понятно (по умолчанию давно и все работает без проблем)

на счет второго

Код: Выделить всё

/etc/sysctl.d/*.conf
не очень :o)

всегда использовал первый вариант, но тут наткнулся на ноутбуке с slackware-14.2 на второго перца, нужно было немного подрулить систему

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

полез смотреть в init-скрипты, а там и нет такого, только стандартный первый вариант
в инете только "сумбурное" высказвание алиена о том, что если создать "первый вариант" все будет пучком :о)

на слакбилд-орге есть упомнинание об втором варианте, но в единственном экземпляре, возм. плохо искал
slackbuild.org/ccl

Код: Выделить всё

(see /etc/sysctl.d/ccl.conf)
что скажут боевые перцы по поводу присутствия второго непрошенного гостя? у меня он присутствует везде в slackware-14.2

p.s.
думаю, даже, если предложить патрику патчи на init-скрипты для обработки второго перца, то он откажется :o)

Код: Выделить всё

slackware 12.2 / тут, точно нет "второго перца"
slackware 14.2 / а тут он есть :о)
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3486
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение Hephaestus »

У меня эта штука упоминается ровно в двух пакетах:
- пакет procps-ng создает этот каталог пустым и содержит man 5 sysctl.conf,
где данный каталог упоминается в списке путей, в которых ищутся conf-файлы.
- пакет libvirt кладет в этот каталог файл 60-libvirtd.conf, в котором задается какой-то там параметр.

Больше этот каталог в моей системе нигде не фигурирует. Работает или нет, судить не берусь.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunjob
Сообщения: 188

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение sunjob »

procps-ng
да, именно... у меня аналогично :D
Работает или ...
не, не работает... нету "рулежки" из init-скриптов... :cray:
ну это, вообще-то не беда, две три строчки добавить, это не проблема... :yes3:

надо было сразу по пакетам пробежаться... был сбит с толку... вроде слака, вроде ни чего лишнего (обычно...) а тут такая клякса :crazy:

спасибо
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3486
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение Hephaestus »

sunjob писал(а):
13.01.2021 03:45
не, не работает... нету "рулежки" из init-скриптов...
Во-первых, сама по себе рулежка из init-скриптов тут ни при чем.
sysctl можно просто запустить из командной строки, передав параметр.
При старте sysctl считывает свои конфиги.
Поскольку sysctl родом из этого же пакета procps-ng, и каталог /etc/sysctl.d заявлен, как рабочий,
то по идее читать обязан.

Во-вторых, оно всё-таки работает, я проверил.
Я тут как раз давеча на виртуалке слаку развернул. Настроек никаких не делал.
Соответственно, возможность пользователю делать dmesg отключена.
Вот эту настройку я и загнал в файлик dmesg.conf, который положил в /etc/sysctl.d.
Сработало. Правда, я делал перезагрузку.

Если у Вас не срабатывает, возможно, есть ошибка в синтаксисе. Или имя файла неподходящее (у файла должно быть расширение .conf).
Либо эта штука перекрывается где-то на другом уровне и поэтому не работает.
Но на чистой системе работает.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunjob
Сообщения: 188

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение sunjob »

Код: Выделить всё

book$ cat /etc/sysctl.conf
#fs.inotify.max_user_watches = 16384
#vm.swappiness=5

book$ cat /etc/sysctl.d/97-kde-baloo-filewatch-inotify.conf
fs.inotify.max_user_watches = 16384

book$ cat /etc/sysctl.d/99.tuning.conf
vm.swappiness=5

book$ ls -l /etc/sysctl.d/97-kde-baloo-filewatch-inotify.conf
-rw-r--r-- 1 root root 36 Oct 19 17:06 /etc/sysctl.d/97-kde-baloo-filewatch-inotify.conf

book$ ls -l /etc/sysctl.d/99.tuning.conf
-rw-r--r-- 1 root root 16 Jan 12 23:19 /etc/sysctl.d/99.tuning.conf

book$ sysctl fs.inotify.max_user_watches
fs.inotify.max_user_watches = 8192

book$ sysctl vm.swappiness
vm.swappiness = 60

...

book$ pkgfile etc/sysctl.d

###
pkgfile - поиск файла 'etc/sysctl.d' в пакетах
###

/var/adm/packages/procps-ng-3.3.15-i586-1_slack14.2:etc/sysctl.d/

...

book$ pkgls procps-ng

###
pkgls - список пакетов 'procps-ng'
###

procps-ng-3.3.15-i586-1_slack14.2
procps-3.2.8-i486-4

Во-первых, сама по себе рулежка из init-скриптов тут ни при чем.
еще как ...

Код: Выделить всё

grep -iRI "sysctl" /etc/rc.d
sysctl можно просто запустить из командной строки, передав параметр.
и?! надеюсь, это знают все :yes3: это-же продемонстрировала пред. команда :)
При старте sysctl считывает свои конфиги.
--> возвращаемся обратно, кто рулит загрузкой и заставляет считывать sysctl свои конфиги?
Поскольку sysctl родом из этого же пакета procps-ng, и каталог /etc/sysctl.d заявлен, как рабочий,
то по идее читать обязан.
вроде как да... но упс... есть какое-то непреодолимое природное явление

и... загрузкой sysctl занимаются init-script's

да, к стати, оба пакета содержат /sbin/sysctl (может дело в этом?)

Код: Выделить всё

/var/adm/packages/procps-3.2.8-i486-4:sbin/sysctl
/var/adm/packages/procps-ng-3.3.15-i586-1_slack14.2:sbin/sysctl
надо будет попробовать переудалять/переустановить и все поотдельности :rolleyes:
...

и с первого набегу у меня "не заработал" каталог /etc/sysctl.d, и со второго, сейчас вам продимонстрировал (в начале сообщения :yes3: )

возможно, это связано и с патчами/непатчами/ядра/неядра/версией слаки итд...

Код: Выделить всё

slackware 14.2 x32

procps-ng-3.3.15-i586-1_slack14.2
kernel-generic-smp-4.4.227_smp-i686-1
kernel-modules-smp-4.4.227_smp-i686-1

Linux book 4.4.227-smp #2 SMP Thu Jun 11 15:43:45 CDT 2020 i686 Intel(R) Core(TM)2 CPU         T7200  @ 2.00GHz GenuineIntel GNU/Linux
на счет патченности/нет я не подскажу, не помню, обновлял-ли я слаку после установки или нет, и, может быть и обновлял какой либо компонет...

могу ошибаться ... вот тут и, видимо, зарыта собака :drunk:
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3486
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение Hephaestus »

sunjob писал(а):
13.01.2021 14:24
и?! надеюсь, это знают все
Вы нарочно это делаете?
Прикидываетесь, что не поняли?
sysctl считывает конфиги при запуске. При любом запуске: хоть из терминала, хоть из init-скриптов.
Способ запуска не имеет значения.
Если у Вас сработал "первый способ", сработает и "второй".
Не требуется в скриптах инициализации каких-то специальных инструкций для "второго способа".
Главное - это старт sysctl.
Да, есть в init-скриптах некоторые условия для запуска: наличие прав на исполнение и и наличие файла sysctl.conf.
Ну так эти условия у Вас выполняются, поскольку "первый способ" работает.
Следовательно, sysctl стартует. А раз стартует, то считывает конфиг, значит, сработает и "второй способ".
Специальных каких-то команд именно для "второго способа" не нужно.

Так понятнее?
sunjob писал(а):
13.01.2021 14:24
возвращаемся обратно, кто рулит загрузкой и заставляет считывать sysctl свои конфиги?
Считывать конфиги его никто не заставляет - этого ещё не хватало.
Он их сам считывает без дополнительных действий со стороны пользователя.
А уж запуском рулить можно по-разному: хоть руками, хоть из скриптов.
sunjob писал(а):
13.01.2021 14:24
с каких...? кто кому обязаН?!
Программа обязана работать так, как заявлено разработчиками.
Кому обязана? Разработчикам и обязана.
С каких? С таких, они вложили в это свой труд. Наверно, не впустую.
Они реализовали возможность считывания конфигов из /etc/sysctl.d и указали этот путь в man-странице.
sunjob писал(а):
13.01.2021 14:24
я точно знаю, что у меня не работает и почему
А я не менее точно знаю, что это работает. Потому что специально проверил.
Да, возможны нюансы.
Так это надо выяснять, а не просто упираться, что "не работает" и "надо патчить init-скрипты".
Во всяком случае, я проверил - работает. И я ничего не патчил.
Добавлено (15:25):
sunjob писал(а):
13.01.2021 14:24
да, к стати, оба пакета содержат /sbin/sysctl (может дело в этом?)
Может и в этом. Помню, procps был объявлен каким-то... то ли уязвимым, то ли ещё каким...
Короче, удалил я его.
sunjob писал(а):
13.01.2021 14:24
сейчас вам продимонстрировал
Я не разглядел там содержимого файлов, которые вы положили в /etc/sysctl.d/
И имена у этих файлов длинноваты, на мой взгляд.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunjob
Сообщения: 188

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение sunjob »

Вы нарочно это делаете?
Прикидываетесь, что не поняли?
sysctl считывает конфиги при запуске
бузилка :drinks:
сам sysctl - ни чего не считывает, а считывает и он только при определенных обстоятельствах, если его об этом хорошо попросить

Код: Выделить всё

/etc/rc.d/rc.S

#
# Configure runtime kernel parameters:
#
if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
/sbin/sysctl -e -p /etc/sysctl.conf
fi
именно :cray: подсунуть ему соотв. аргументы, сами же видели :crazy:

...
Не требуется в скриптах инициализации каких-то специальных инструкций для "второго способа".
вот уж дудки, читаем дальше :drunk:

...
Если у Вас сработал "первый способ", сработает и "второй".
я вам продемонстрировал - что не работает второй способ... если не хотитет вникать в ту портянку, не надо... я вас не заствляю это делать :drunk:

...
Не требуется в скриптах инициализации каких-то специальных инструкций для "второго способа". Главное - это старт sysctl.
+
Специальных каких-то команд именно для "второго способа" не нужно.
ну вам же виднее :drinks:

...
Да, есть в init-скриптах некоторые условия для запуска: наличие прав на исполнение и и наличие файла sysctl.conf
только там еще и присутствует "соотв. формирование аргумента", который и заставляет читать... но только один "системный" файл конфигурации ...

...
Считывать конфиги его никто не заставляет - этого ещё не хватало.
-->
/etc/rc.d/rc.S
/sbin/sysctl -e -p /etc/sysctl.conf
-p /etc/sysctl.conf

...
Он их сам считывает без дополнительных действий со стороны пользователя.
вот этого действительно "еще не хватало"... что бы система инициализации работал с оглядкой на пользователя :crazy:

...
и указали этот путь в man-странице.
да, я убрал лишнее, из пред. высказывания...

но

Код: Выделить всё

       ‐‐system
              Load settings from all system configuration files.
              /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
ключевое слово ‐‐system, а этого ключа у меня нет в команде запуска!!! и, поверьте, я пециально ее от тудова не удалял... возможно, это эхо прошедшей войны... но вот так, как есть...

...
Я не разглядел там содержимого файлов, которые вы положили в /etc/sysctl.d/
-->

Код: Выделить всё

book$ cat /etc/sysctl.d/97-kde-baloo-filewatch-inotify.conf
fs.inotify.max_user_watches = 16384

book$ cat /etc/sysctl.d/99.tuning.conf
vm.swappiness=5
...
И имена у этих файлов длинноваты, на мой взгляд.
и вы тоже заметили?!!! :D :D :D

...

щас добавим новый ключ, перегрузим, и отпишемся :yes3:

...

перегруз, проверка, все ОК
сабака была зарыта в "старой команде" init-файла (странное дело, но там отсутствовал "нужный" ключ)

Код: Выделить всё

/etc/rc.d/rc.S

if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
#/sbin/sysctl -e -p /etc/sysctl.conf ###!!! -->
/sbin/sysctl -e -p /etc/sysctl.conf --system
fi
зы
спасибо что указали на ПРЕЦЕДEНТ РАБОТОСПОСОБНОСТИ данного механизма... :crazy:
но бузить не надо, мы же не враги :drinks:

спасибо, с новым годом!!!
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3486
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение Hephaestus »

sunjob писал(а):
13.01.2021 15:52
бузилка
:laugh: Слово само по себе звучит смешно.
По отношению ко мне - тем более смешно, ибо я - само спокойствие.
sunjob писал(а):
13.01.2021 15:52
сам sysctl - ни чего не считывает, а считывает и он только при определенных обстоятельствах, если его об этом хорошо попросить
Да. Ваша правда. Я с чего-то решил, что он по умолчанию чего-то там считывает.
Потыкал, посмотрел. Оказалось, что нет.
sunjob писал(а):
13.01.2021 15:52
ключевое слово ‐‐system, а этого ключа у меня нет в команде запуска!!!
В свежеустановленной слаке это есть (проверял в виртуалке).
И у меня на домашней машине (прошедшей обновление с 14.1 на 14.2) это тоже есть.
Выглядит это так:

Код: Выделить всё

# Configure kernel parameters:
if [ -x /sbin/sysctl -a -r /etc/sysctl.conf ]; then
  echo "Configuring kernel parameters:  /sbin/sysctl -e --system"
#  /sbin/sysctl -e -p /etc/sysctl.conf 
  /sbin/sysctl -e --system
elif [ -x /sbin/sysctl  ]; then
  echo "Configuring kernel parameters:  /sbin/sysctl -e --system"
  # Don't say "Applying /etc/sysctl.conf" or complain if the file doesn't exist
#  /sbin/sysctl -e --system 2> /dev/null | grep -v "Applying /etc/sysctl.conf"
  /sbin/sysctl -e 2> /dev/null | grep -v "Applying /etc/sysctl.conf"
fi
Я уже не помню, что-то я, химичил вручную.
Но если if...else были и в предыдущей версии, стало быть, был вариант запуска с /etc/sysctl.conf,
и был вариант с --system, на случай отсутствия sysctl.conf. А сейчас в свежей слаке в обоих ветках вариант с --system, только сообщения разные.
Если у Вас варианта с --system нет вообще, да ещё procps и procps-ng в системе присутствуют одновременно (кстати, как они уживаются?), значит у Вас, похоже, скрипт старше, чем из 14.1, а ещё и обновление прошло немного не по Патрику. Потому что procps удалился не просто так, а в рамках перехода на 14.2 (его просто выкинули из дистра).
И вроде бы отдельно я его не удалял. Я после обновления обнаружил, что не работает dmesg, сунулся к sysctl, а её и нет. Оказывается, пакета в дистре нет. Начал разбираться, нашёл и поставил procps-ng.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
sunjob
Сообщения: 188

Re: slackware-14.2 /etc/sysctl.conf & /etc/sysctl.d - that is the ... ?

Сообщение sunjob »

ну да, так и было, обновлялся... а чего хотим, система начало свой путь с 9й версии, и потихоньку, маленькими шажками ползла до 12 версии, там надолго застопорилась (оказалась самая лучшая версия :о)... ну а потом, громадными, семимильными шажищами пришлось быстренько, в режиме аврала ставить 14.1 потом 14.2 ... за всем не углядишь... init-скрипты, ск. всего остались от 14.1 (т.к. я их патчил и вставлял в пакеты TDE-14.0.9, а потом, после установки тринити "на автомате" заменял родные, кот. 14.2 установила... молодец, чЁ?!!! :crazy: )

бум :drinks:
если я ошибаюсь, то поправьте а не критикуйте :о)
Спасибо сказали: