Re: devuan

2023-09-15 Пенетрантность Andrey Jr. Melnikov
Eugene Berdnikov  wrote:
> On Fri, Sep 15, 2023 at 10:11:34AM +0300, Andrey Jr. Melnikov wrote:
> > Eugene Berdnikov  wrote:
> > >  и в итоге сделал для себя вывод, что проще поставить на хост systemd
> > >  чем 100 раз отжиматься... Под systemd оно сразу и shutdown/reboot 
> > > нормально
> > >  отрабатывало, и вложенные контейнеры запускало, и ещё чего-то там делало,
> > >  что под SysV лечилось лишь напильником.
> > Хахаха... Ты нашёл замшелую граблю обильно присыпанную пылью веков. Всё дело
> > в том, что lxc использует SIGPWR для останова контенйнеров, а в inittab'e от
> > SysV-init прописано обработчик "pf::powerwait:/etc/init.d/powerfail start"

>  Если такая грабля существовала, это не то, с чем сталкивался я...
>  Насчёт SIGPWR не знаю, скорее всего он используется, но конечный результат
>  зависит и от процесса, управляющего контейнером, и от поведения init'а
>  внутри контейнера. Вот у меня контейнеры с дебианами примерно от 2008 года
>  (с апдейтами, да), с такими строчками в inittab'e:

> # What to do when the power fails/returns.
> pf::powerwait:/etc/init.d/powerfail start
> pn::powerfailnow:/etc/init.d/powerfail now
> po::powerokwait:/etc/init.d/powerfail stop

>  причём никаких /etc/init.d/power* нет, а системы нормально гасятся и
>  поднимаются. Под systemd. 
Так systemd плевать хотел на /etc/initttab. Он им не пользуется. И на SIGPWR
тоже, т.к. у Поттеринга на него алергия:

-- cut --
My recommendatin: don't bother with SIGPWR. Traditionally on UNIX UPS
software sends SIGPWR to PID 1 to initiate some special kind of
shutdown operation. But it's very vaguely defined only, and one
wonders why a normal shutdown isn't enough here, and why to bounce
this off PID 1 with a special UNIX signal even...

I am pretty sure that power management software that runs in userspace
really shouldn't make use of this anymore. It should just request a
normal shutdown. The only reason why one would want to bother with
SIGPWR at all is that some really power-related old kernel drivers
send SIGPWR to PID 1 too.

>From the systemd PoV: this stuff is ugly legacy crap that only exists
for historic reasons and was never really well-defined in its
behavour. It mostly appears to be a concept that exists only because
Linux never had a useful IPC that was accessible from both kernelspace
and userspace in a sane way... In systemd, we don't want anything to
do with it, but some legacy folks really think it's superduper
important. Hence we simply map it to a target unit, and enable users
to map it to whatever they want to map it, but don't do anything smart
about it at all on our own.

I think it would be best of people would just forget about it...

Lennart
-- cut --

так что, там используется SIGRTMIN+4, потмоу что вот.

> Когда я игрался с подобными контейнерами под SysV, там было примерно
> такое: по lxc-stop контейнер шустро сворачивается, а потом lxc-stop
> висит 2-3 минуты, ожидая какого-то ответа из сокета, и выдаёт 
> невразумительное сообщение об ошибке. При этом в контейнере ничего 
> не ломается.
Там было 2 проблемы - кривость в использовании io_uring, и ещё какие-то
проблемы с управляющим терминалом (точнее с детачингом от него демонов,
которые ну очень хотят в него отсылать сообщения).
Но меня эта проблема не волнует - контейнеры останавливаются редко, спешки в
этом никакой нет. А то, что надо прям сейчас - подхватит другой контейнер,
после того, как init убъет VRRP демона. А что он там будет делать дальше -
никого уже не волнует.

>  И много подобных неудобств и граблей было, всех уже не вспомнить...
>  
>  Если сегодня под SysV инфраструктура lxc нормально живёт, это замечательно,
>  но мне надо было вчера, и для этих задач я для себя выбрал systemd.
У меня и работает со вчера. Только пришлось немного посмотреть, почему оно
так. А верить в магию systemd "просто поставь его" - это не наш метод.



Re: devuan

2023-09-15 Пенетрантность Max Nikulin

On 14/09/2023 18:26, Andrey Jr. Melnikov wrote:

Вопрос не во вложенности, а имеено в том, что на физическом хосте
start-stop-daemon путается в запущенном. Следи за руками:

~# ps ax | grep cron
1722 ?Ss 0:00 /usr/sbin/cron -f
   23546 ?Ss 0:00 /usr/sbin/cron
   23772 pts/0S+ 0:00 grep cron


А научить его действительно проблема? Наугад попробовал

ps -eo pid,pidns,user,cmd f

контейнер выделяется по pidns. У меня, конечно systemd, но pidns же lxc 
вроде создает, так что это влиять не должно.




Re: devuan

2023-09-15 Пенетрантность Eugene Berdnikov
On Fri, Sep 15, 2023 at 05:03:50PM +0300, Andrey Jr. Melnikov wrote:
> Eugene Berdnikov  wrote:
> >  внутри контейнера. Вот у меня контейнеры с дебианами примерно от 2008 года
> >  (с апдейтами, да), с такими строчками в inittab'e:
> 
> > # What to do when the power fails/returns.
> > pf::powerwait:/etc/init.d/powerfail start
> > pn::powerfailnow:/etc/init.d/powerfail now
> > po::powerokwait:/etc/init.d/powerfail stop
> 
> >  причём никаких /etc/init.d/power* нет, а системы нормально гасятся и
> >  поднимаются. Под systemd. 
> Так systemd плевать хотел на /etc/initttab. Он им не пользуется.

 В верхней строчке написано: "дебианы от 2008 года". Ясное дело, там SysV,
 в контейнере, а не снаружи. Ты бы хоть читал то, на что отвечаешь...

> И на SIGPWR тоже, т.к. у Поттеринга на него алергия:

 Согласен с Поттерингом: да, все варианты проблем с электропитанием в один
 лишь SIGPWR запихнуть невозможно, потому и сакрального смысла в нём нет.
 
 Трахаться с ним или сразу закопать -- решать Поттерингу: он свои силы
 тратит на движение прогресса, а мы пользуемся результатом.
-- 
 Eugene Berdnikov



Re: devuan

2023-09-15 Пенетрантность Andrey Jr. Melnikov
Eugene Berdnikov  wrote:
> On Thu, Sep 14, 2023 at 02:26:07PM +0300, Andrey Jr. Melnikov wrote:
> > Eugene Berdnikov  wrote:
> > >  У меня везде, где есть контейнеры, стоит система инициализации systemd.
> > >  Потому что lxc, например, под SysV-init не жилец (да, я знаю, что можно
> > >  запускать контейнеры lxc под sysv, но это будет не работа, а бесконечный
> > >  бег по граблям).
> > У меня везде стоит SysV-init где контейнеры. И ничего - граблей не наблюдаю.
> > И даже контейненры с systemd внутри - тоже работают, хотя раньше это изделие
> > не могло там стартануть нормально. 

>  Ну так 1. я про то, что было раньше, несколько лет назад, 2. контейнеры
>  они разные бывают. Несколько лет назад я пытался завести lxc-шные,
>  начитался разных wiki на тему "как заставить это работать под SysV",
>  и в итоге сделал для себя вывод, что проще поставить на хост systemd
>  чем 100 раз отжиматься... Под systemd оно сразу и shutdown/reboot нормально
>  отрабатывало, и вложенные контейнеры запускало, и ещё чего-то там делало,
>  что под SysV лечилось лишь напильником.
Хахаха... Ты нашёл замшелую граблю обильно присыпанную пылью веков. Всё дело
в том, что lxc использует SIGPWR для останова контенйнеров, а в inittab'e от
SysV-init прописано обработчик "pf::powerwait:/etc/init.d/powerfail start"
который ещё 10 лет назад был в пакетах powstatd/genpower и которые выкинули
из unstable где-то в районе squeeze/wheezy. А про скриптик - так и забыли,
сейчас не модно держать UPS подключенный к машине.

>  Тенденция такова, что как только отстал от мейстрима, так проблемы растут,
>  отнимая всё больше времени и сил... Вон, формально для i686 до сих пор
>  собирают mplayer и chrome. Однако на тех процах, которые были во времена
Эмм, за последние 15 лет не выпускалось процессоров без поддержки x64.
Системы 10и летней давности - ужасно энерго неэффективны, их проще менять
целиком на что-то более новоее. Вон китайский плеер за 2 тысячи рублей -
вполне помещается за телевизором, крутит HD видео без заиканий и потери 
кадров и при этом - не шумит и не греет воздух.

>  мейнстрима i686, как правило, не было SSSE3, которые эти изделия хотят.
>  И ведь можно было бы обойтись, просто работать медленнее, но нет, кодерам
>  неинтересна поддержка "убогих" процов, им проще тупо вернуть статус-код.
SSE3, как впрочем и всякие AVX512 - сильно перероценён и больше представляет
из себя маркетинговый буллщит в стиле "а у нас страшных буковок больше".

>  Ну а если у меня современный проц, зачем мне гонять на нём 32-битную
>  базовую систему? Я 64 заведу, а всякие ископаемые конфигурации, которые
>  слишком дорого переделывать, загоню в 32-битные виртуалки/контейнеры.
Закапывать надо такие конфигурации, как стюардессу. 

>  И так оно везде, к сожалению. В том числе в виртуализации, всех видов.

> > Вопрос не во вложенности, а имеено в том, что на физическом хосте
> > start-stop-daemon путается в запущенном. Следи за руками:

>  Да это понятно. Я про то, что в контейнере start-stop-daemon не путается,
>  если там других (вложенных) контейнеров нет. Потому как в контейнере
>  ему лишь свои и дочерние процессы видны. Поэтому под systemd контейнер
>  с инициализаций SysV нормально живёт.
Контенер с SysV живёт где угодно, ему тупо не надо, как systemd -
смонтированных cgroupv2 псевдо-fs для работы. А вот systemd - вынь да полож.



Re: devuan

2023-09-15 Пенетрантность Eugene Berdnikov
On Fri, Sep 15, 2023 at 10:11:34AM +0300, Andrey Jr. Melnikov wrote:
> Eugene Berdnikov  wrote:
> >  и в итоге сделал для себя вывод, что проще поставить на хост systemd
> >  чем 100 раз отжиматься... Под systemd оно сразу и shutdown/reboot нормально
> >  отрабатывало, и вложенные контейнеры запускало, и ещё чего-то там делало,
> >  что под SysV лечилось лишь напильником.
> Хахаха... Ты нашёл замшелую граблю обильно присыпанную пылью веков. Всё дело
> в том, что lxc использует SIGPWR для останова контенйнеров, а в inittab'e от
> SysV-init прописано обработчик "pf::powerwait:/etc/init.d/powerfail start"

 Если такая грабля существовала, это не то, с чем сталкивался я...
 Насчёт SIGPWR не знаю, скорее всего он используется, но конечный результат
 зависит и от процесса, управляющего контейнером, и от поведения init'а
 внутри контейнера. Вот у меня контейнеры с дебианами примерно от 2008 года
 (с апдейтами, да), с такими строчками в inittab'e:

# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

 причём никаких /etc/init.d/power* нет, а системы нормально гасятся и
 поднимаются. Под systemd. Когда я игрался с подобными контейнерами
 под SysV, там было примерно такое: по lxc-stop контейнер шустро
 сворачивается, а потом lxc-stop висит 2-3 минуты, ожидая какого-то
 ответа из сокета, и выдаёт невразумительное сообщение об ошибке.
 При этом в контейнере ничего не ломается.

 И много подобных неудобств и граблей было, всех уже не вспомнить...
 
 Если сегодня под SysV инфраструктура lxc нормально живёт, это замечательно,
 но мне надо было вчера, и для этих задач я для себя выбрал systemd.
 -- 
 Eugene Berdnikov



Re: devuan

2023-09-15 Пенетрантность Andrey Jr. Melnikov
dimas  wrote:
> pid-файл? не, не слышали
Нет конечно, не слышали, откуда нам.

> grep "pid" /etc/init.d/cron
> PIDFILE=/var/run/crond.pid
> start_daemon -p $PIDFILE $DAEMON $EXTRA_OPTS
> killproc -p $PIDFILE $DAEMON
> [ $RETVAL -eq 0 ] && [ -e "$PIDFILE" ] && rm -f $PIDFILE
> status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
> почему оно должно путаться - я вообще не понимаю

Во первых - это был пример. Во вторых - не каждый демон первым делом создаёт
pid файл, он может задуматься на ресолвинге имён или ещё каких своих
потребностях. И в обратную сторону так-же - демон останавливается, pid уже
стёр, а сам ещё не выгрузился. Поэтому - демон afrnbxtcrb запущен, а 
pid-файла - нет.