Автор Тема: Бета-тестирование стартеркитов p9  (Прочитано 166267 раз)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #360 : 10.03.2020 19:58:55 »
    Первый аргумент ... либо является прочерком (-), что указывает на состояние «выключен по умолчанию».
Теперь там несовсем так написано.

Спасибо. Вижу. Сравнил версии по истории.

:-) Кто придумал, чтобы chkconfig в системах на sysv обрабатывал LSB хидер по приоритету и ломал правильное умолчание?

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Бета-тестирование стартеркитов p9
« Ответ #361 : 10.03.2020 20:02:20 »
:-) Кто придумал, чтобы chkconfig в системах на sysv обрабатывал LSB хидер по приоритету и ломал правильное умолчание?
Не знаю, но я на это наступил в 2009-ом, судя по ченджлогу квагги. Где-то вроде обсуждали, но что-то не нашёл ни в багзилле, ни в рассылке.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #362 : 10.03.2020 20:39:00 »
:-) Кто придумал, чтобы chkconfig в системах на sysv обрабатывал LSB хидер по приоритету и ломал правильное умолчание?
Не знаю, но я на это наступил в 2009-ом, судя по ченджлогу квагги. Где-то вроде обсуждали, но что-то не нашёл ни в багзилле, ни в рассылке.

Asy, спасибо за исправление в полиси и за детали по LSB хидеру на предмет chkconfig. Не знал этого.


Что-то мне подсказывает, что с этим всё таки что-то придётся делать:
на декабрьской сборке xfce-sysv p9 не стартует libvirtd,

Ну или ничего не делать? :-)

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #363 : 10.03.2020 20:51:28 »
The LSB is based on the POSIX specification

Да нифига он ни на чём не основан. Он дефолты инициализации sysv ломает.
И в году эдак 2004-ом LSB хидера не было даже в fedora:
https://www.redhat.com/archives/fedora-list/2004-March/msg06054.html
И в sysv работало как и должно было.
Инноваторы... Блин...
« Последнее редактирование: 10.03.2020 20:56:26 от Speccyfighter »

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #364 : 10.03.2020 21:59:25 »
на декабрьской сборке xfce-sysv p9 не стартует libvirtd,

Почему это произошо?

Подробно:
Это долго, много и может быть непонятно.
Потому что выстраивается множество связей из:
chkconfig - инит скрипт - альтовое полиси - LSB хидер - проект Linux Standard Base

Коротко:
Потому что дебилы из проекта Linux Standard Base своим хидером сломали дефолтные установки симлинков в rc*.d на sysv.

Что делать?

Закомментировать эти строки инит-скрипта до такого состояния, ибо LSB-хидер sysvinit -у нафик не впёрся:
# grep Default-St /etc/rc.d/init.d/libvirtd
## Default-Start: 3 4 5
## Default-Stop: 0 1 2 6

Добавить сервис, - в ранлевелах он будет в том состоянии как указано в конфиге и альтовом полиси, т.е. в выключенном на всех ранлевел
# chkconfig --add libvirtd

Включить сервис, - установится старт на уровнях 2-5, килл на уровнях 0,1,6
# chkconfig libvirtd on

Перегрузиться или выполнить одну из команд
# service libvirtd start
# /etc/rc.d/init.d/libvirtd start


Теоретически, можно было бы не комментировать Default-St*, а добавить post_service для сервиса. И тогда сервис по-умолчанию был бы включен. Но врядли это пролезет на багтрекере.

Опять же:
Строки с Default-St* можно и не комментировать, а просто добавить сервис и включить его. Но включится он только на уровнях 3-5.
« Последнее редактирование: 10.03.2020 22:41:55 от Speccyfighter »

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 043
  • ITS
Re: Бета-тестирование стартеркитов p9
« Ответ #365 : 11.03.2020 08:10:20 »
просто добавить сервис и включить его. Но включится он только на уровнях 3-5.
Для меня это пока достаточно. Спасибо помогло. Дома проверю на сентябрьской сборке. После ручного добавления и перезапуска, virt-manager увидел виртуалки через libvirtd, а то аномалия какая то, сервис в автозагрузке прописан и статус - запущен, а virt-manager говорит, что невижу проверь библиотеку.
# chkconfig --add libvirtd
# service libvirtd start
# reboot
мне этого хватило, а вот "голограмма" присутствия сервиса в автозагрузке по команде chkconfig вводит в "блуд" пользователя или видимо у меня недостаточно знаний по этим вопросам.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #366 : 11.03.2020 12:51:11 »
видимо у меня недостаточно знаний по этим вопросам.

Всё неоднозначно:
Отчасти да, отчасти нет.

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

Ипостасей sysvinit мне известно три:
RedHat sysvinit до-LSB-шной эпохи, без LSB-хидера.
Скрипты debian sysvinit содержат только LSB хидер.
Скрипты Slackware sysvinit не содержат хидеров совсем.

Скрипты содержащие 'chkconfig:' и LSB хидер, это скрещивание ежа с ужом. Это ломает правильную логику обработки скриптов sysv.

Недавно Антон Мидюков упоминал, что LSB хидер может менять порядок старта скриптов. Современный chkconfig обрабатывает только Default-{Start,Stop} LSB хидера. Чего не должно быть в принципе в системах на sysv. К тому же через модуль alterator-services, альтовое полиси на предмет "-" как первого параметра chkconfig: не реализуемо в принципе. По причине того, что если первый параметр chkconfig: в скрипте, это "-", что говорит о том, что при добавлении сервиса на всех runlevel он должен быть в off, при запуске альтератора с модулем services, сервис будет в том состоянии, в котором указано в Default-{Start,Stop} LSB хидера. А это означает, что ломается и правильная логика chkconfig и полиси (на предмет 'chkconfig: -').
И это сломается везде:
# grep 'chkconfig: -' /etc/rc.d/init.d/*
/etc/rc.d/init.d/alteratord:# chkconfig: - 95 05
/etc/rc.d/init.d/dnsmasq:# chkconfig: - 20 55
/etc/rc.d/init.d/ethtool:# chkconfig: - 11 89
/etc/rc.d/init.d/hddtemp:# chkconfig: - 90 10
/etc/rc.d/init.d/iptables:# chkconfig: - 08 92
/etc/rc.d/init.d/libvirtd:# chkconfig: - 97 03
/etc/rc.d/init.d/lm_sensors:# chkconfig: - 26 74
/etc/rc.d/init.d/multipathd:# chkconfig: - 13 86
/etc/rc.d/init.d/NetworkManager:# chkconfig: - 12 90
/etc/rc.d/init.d/nfslock:# chkconfig: - 14 86
/etc/rc.d/init.d/openvpn:# chkconfig: - 47 68
/etc/rc.d/init.d/osspd:# chkconfig: - 81 10
/etc/rc.d/init.d/rawdevices:# chkconfig: - 56 44
/etc/rc.d/init.d/sysfs:# chkconfig: - 33 67
/etc/rc.d/init.d/template:# chkconfig: - 90 10
/etc/rc.d/init.d/vgauthd:# chkconfig: - 81 19
/etc/rc.d/init.d/vmtoolsd:# chkconfig: - 80 20
/etc/rc.d/init.d/xl2tpd:# chkconfig: - 90 10

Этого вы знать не могли. Ибо такое недокументированное поведение, ломает логику поведения классического sysvinit.

Но правильное состояние на runlevel-ах по-дефолту и порядок старта в системах где /proc/1/exe это /sbin/init, должны быть только такими:
# grep chkconfig: $(rpm -ql libvirt-daemon | grep rc)
/etc/rc.d/init.d/libvirtd:# chkconfig: - 97 03
/etc/rc.d/init.d/virtlockd:# chkconfig: 345 96 04
/etc/rc.d/init.d/virtlogd:# chkconfig: 345 96 04


Для libvirtd, при добавлении сервиса, ломается полиси на предмет 'chkconfig: -', поскольку парсится не 'chkconfog:' (как должно быть), а Default-{Start,Stop} LSB-хидера. И это ломает полиси для "chkconfig: -" на всех runlevel в off.  Чтобы этого не происходило и не нарушало полиси, на предмет "-" и в runlevel-ах off после --add, в секцию '%post daemon' спека, не включили строку '%post_service libvirtd'. Но после этого сервис libvirtd оказался даже не добавленным! Поскольку вызова из пост-инсталл скритов post_service, который содержит команду добавления сервиса, не было.

Т.о. интеграторы LSB хидера, ради Linux Standard Base, в sysv скрипты (без обработки /proc/1/exe), подложили системам на sysv большую свинью: выбирать теперь на sysv можно только между плохо и ещё хуже.

Мейнтейнеру же пакета libvirt-daemon, чтобы соблюсти полиси, ничего не оставалось делать как не включать строку 'post_service libvirtd' в пост-инсталл скрипты. Впрочем модуль альтератора services, если пакет libvirt-daemon установлен, уже при своём старте проигнорирует 'chkconfig: -'. И лихо без единного действия пользователя, разбросает симлинки старт и килл по rc*.d. Что противоречит и 'chkconfig: -' и полиси.

Если бы chkconfig при /proc/1/exe -> /sbin/init брал по приоритету параметры chkconfig: игнорируя LSB хидер, то логика chkconfig была бы верной. И очевидно, что мейнтейнер пакета добавил бы в скрипты добавление сервиса libvirtd.

Ну и:
Формально полиси на скриты sysv у альтов есть. Но оно не соблюдается и не может быть соблюдено на уровне текущего функционала alterator-services.
Опция Default-Add в LSB хидере, решила бы сразу несколько проблем, но стандартизаторы Linux Standard Base не особенно напрягались чтеним манов инициализации. Её не было и нет:
http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initscrcomconv.html

Вот такой вот прогресс и инновации...

Мне почему-то казалось, что LSB хидер обрабатывается только в системах на systemd. Это было грандиозное заблуждение!
« Последнее редактирование: 11.03.2020 13:24:06 от Speccyfighter »

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 104
Re: Бета-тестирование стартеркитов p9
« Ответ #367 : 11.03.2020 13:46:14 »
Формально полиси на скриты sysv у альтов есть. Но оно не соблюдается и не может быть соблюдено на уровне текущего функционала alterator-services.
По идее LSB заголовок никак не должен относиться к sysvinit, он не для этого init. В частности в ALT он исключительно для systemd. Зачем на него реагирует chkconfig, я не знаю. Может быть были какие-то планы.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #368 : 11.03.2020 14:41:56 »
Формально полиси на скриты sysv у альтов есть. Но оно не соблюдается и не может быть соблюдено на уровне текущего функционала alterator-services.
По идее LSB заголовок никак не должен относиться к sysvinit, он не для этого init. В частности в ALT он исключительно для systemd. Зачем на него реагирует chkconfig, я не знаю. Может быть были какие-то планы.

Стандартизаторы LSB затеяли ввернуть LSB хидер и в инит-скрипты sysv, а за основу, предположительно, судя по всему взяли debian:
http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/initsrcinstrm.html
Ну т.е. как всеобщий стандарт для всех систем на sysv.


:-) Но юмор в том, что sysv debian, это не sysv redhat. И уж точно не sysv slackware.
И sysv скрипты раннего debian не содержали RH заголовка.

acpid sysv инит скрипт из раннего debian etch:
#! /bin/sh -e

# Check for daemon presence
test -x /usr/sbin/acpid || exit 0

# Check for ACPI support on kernel side
[ -d /proc/acpi ] || exit 0

# Include acpid defaults if available
OPTIONS=""
if [ -f /etc/default/acpid ] ; then
. /etc/default/acpid
fi

и так далее

И вфигачили этот LSB хидер везде, не вникая в специфику RH sysv скриптов.
А для sysv RH базированных, вот так неглядя ввернуть LSB хидер, это стало просто катастрофой :-)
« Последнее редактирование: 11.03.2020 15:03:40 от Speccyfighter »

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 043
  • ITS
Re: Бета-тестирование стартеркитов p9
« Ответ #369 : 11.03.2020 18:43:29 »
Дома проверю на сентябрьской сборке.
Вник в логи проверил каталоги, нашел решение неудачных попыток подключения к libvirtd virt-manager -ом:
... Failed to connect socket to '/var/run/libvirt/libvirt-sock': Нет такого файла или каталога
/run/libvirt/libvirt-sock


rm -r /var/run/libvirt
ln -s /run/libvirt /var/run/libvirt

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 043
  • ITS
Re: Бета-тестирование стартеркитов p9
« Ответ #370 : 11.03.2020 19:20:45 »
как заставить ... libvirt.libvirtError: Unable to read from '/sys/fs/cgroup/unified/machine/cgroup.controllers': No such file or directoryувидеть я так понимаю этот файл /sys/fs/cgroup/unified/cgroup.controllers ?

создал каталог
# mkdir /sys/fs/cgroup/unified/machineФайлы сами туда высыпались и виртуалка создалась, а каким скриптом формируется структура в /sys/fs/cgroup/unified/ ?
Я так понимаю в декабрьской сборке "руны вар руны и сигруппы"  починили?
« Последнее редактирование: 11.03.2020 19:33:51 от rabochyITs »

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Бета-тестирование стартеркитов p9
« Ответ #371 : 11.03.2020 20:34:29 »
Я так понимаю в декабрьской сборке "руны вар руны и сигруппы"  починили?

руны вар руны - да. А насчёт сигруппы даже не знаю. Надо было бету пробовать. Сейчас вот уже релиз завтра. И поправить ничего уже не поправлю.

Оффлайн Speccyfighter

  • Мастер
  • ***
  • Сообщений: 10 259
Re: Бета-тестирование стартеркитов p9
« Ответ #372 : 11.03.2020 21:09:27 »
как заставить
... libvirt.libvirtError: Unable to read from '/sys/fs/cgroup/unified/machine/cgroup.controllers': No such file or directory
увидеть

Я тут не в курсе. Документацию надо читать. Много.
Если мне не изменяет память, rhel6 был на sysv, а 7-ой уже на systemd:
* Управление системными ресурсами в Red Hat Enterprise Linux 6 (Multi-page HTML)
* Управление системными ресурсами в Red Hat Enterprise Linux 6 (Single-page HTML)
* https://events.static.linuxfound.org/sites/events/files/slides/cgroup_and_namespaces.pdf

?
# rpm -qpl /var/cache/apt/archives/cgroup_0.42.2-alt2%3ap9+246746.200.3.1@1582646275_x86%5f64.rpm | grep 'etc\|bin/'
/etc/cgconfig.conf
/etc/cgconfig.d
/etc/cgrules.conf
/etc/cgsnapshot_blacklist.conf
/etc/rc.d/init.d/cgconfig
/etc/rc.d/init.d/cgred
/etc/sysconfig/cgconfig
/etc/sysconfig/cgred
/usr/bin/cgclassify
/usr/bin/cgcreate
/usr/bin/cgdelete
/usr/bin/cgexec
/usr/bin/cgget
/usr/bin/cgset
/usr/bin/cgsnapshot
/usr/bin/lscgroup
/usr/bin/lssubsys
/usr/sbin/cgclear
/usr/sbin/cgconfigparser
/usr/sbin/cgrulesengd
« Последнее редактирование: 11.03.2020 21:21:18 от Speccyfighter »

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 043
  • ITS
Re: Бета-тестирование стартеркитов p9
« Ответ #373 : 12.03.2020 06:43:16 »
А насчёт сигруппы даже не знаю. Надо было бету пробовать.
В этой сборке alt-p9-xfce-sysv-20191212-x86_64.iso таких глюков нет, они возникают у меня в домашней alt-p9-xfce-sysv-20190627-x86_64.iso (почему то я считал ее сентябрьской).
Пдставил костыль в начале инит скрипта /etc/rc.d/init.d/libvirtd в виде test -d /sys/fs/cgroup/unified/machine || mkdir /sys/fs/cgroup/unified/machine, проблема снята, жаль только, что обновления не исправляют глюки. Не знаю ядерный это баг или библиотечный, но в последней сборке я его не обнаружил, так что ждем релиза.

Оффлайн Антон Мидюков

  • alt linux team
  • ***
  • Сообщений: 5 183
  • antohami@
Re: Бета-тестирование стартеркитов p9
« Ответ #374 : 12.03.2020 06:46:49 »
В этой сборке alt-p9-xfce-sysv-20191212-x86_64.iso таких глюков нет, они возникают у меня в домашней alt-p9-xfce-sysv-20190627-x86_64.iso (почему то я считал ее сентябрьской).
Пдставил костыль в начале инит скрипта /etc/rc.d/init.d/libvirtd в виде test -d /sys/fs/cgroup/unified/machine || mkdir /sys/fs/cgroup/unified/machine, проблема снята, жаль только, что обновления не исправляют глюки. Не знаю ядерный это баг или библиотечный, но в последней сборке я его не обнаружил, так что ждем релиза.

Тогда должно помочь превращение /var/run и /var/lock в симлинки на /run и /run/lock, соответственно.