Re: devuan
Max Nikulin <[email protected]> Wed, 27 Sep 2023 17:37:18 +0700
| Newsgroups | gmane.linux.debian.user.russian |
|---|---|
| Message-ID | <[email protected]> |
On 26/09/2023 14:19, Andrey Jr. Melnikov wrote: > Max Nikulin wrote: > >> https://manpages.debian.org/bookworm/sysvinit-core/init.8.en.html#CHANGING_RUNLEVELS >> я перестал понимать, куда его дальше-то расширять? Вроде наоборот хотят >> сузить, выкинув /etc/powerstatus, по которому определяется, какой из 3 >> скриптов запускать по SIGPWR > Даа, читал ты его явно по диагонали. Тем не менее единственное новое, что я увидел в пересказе, - это /var/run/powerstatus, что не особенно принципиально (из разряда мелочь, но приятно). >>> L(OW) >>> The power is failing and the UPS has a low battery. Execute the >>> powerfailnow entries. >> Я не в восторге от такого решения, но и предлагавшиеся 3 сигнала, с моей >> точки зрения, не лучше. > Т.е. с твоей точки зраения один signal(1, SIGRTMIN+x) хуже чем вся эта > пляска вокруг файликов с сигналами и FIFO? Я думаю, мы ни до чего не договоримся, да и не важно, ведь ни на что это не повлияет. Да, у меня прямо противоположное мнение о том, какой интерфейс лучше подходит. Перенумеровать все возможные события - затея гиблая, люди в них начнут путаться. Надо ведь еще и имена им дать. Поэтому я против 3-х сигналов. Я думаю, что когда люди выбрали один SIGPWR + /etc/powerstatus, они рассматривали 3 сигнала и остановились на варианте, который сейчас выглядит несколько вычурным. Послать-то сигнал может и просто, а вот правильно поймать уже некоторое искусство. Чинить обработчики сигналов - трудоемкий процесс. За это я сигналы не люблю. С сокетами проще. Если есть утилита и библиотека, которые могут слать нужные сообщения, и процесс их может правильно обработать, то это лучше, чем сигналы. Мне такой вариант нравится больше. А вообще, можно и полностью избавить init от кода, специфичного для обработки событий питания. Все равно это сводится к более общему и универсальному интерфейсу "запустить команду с параметрами". Вот пусть демон UPS и просит выполнить один из вариантов "powerfail start", "powerfail now", "powerfail stop" (ну или что-то похожее) прямым текстом без эфвемизмов вроде нумерованных сигналов. >> On 19/09/2023 14:00, Andrey Jr. Melnikov wrote: >>> Я бы понял, если бы он сделал 3 сигнала SIGPWR для информирования о том, >>> что питание пропало, SIGRTMIN+x1 для информирования о том, что питание >>> появилось обратно и SIGRTMIN+x2 - для emergency power shutdown - был бы >>> разговор о прогрессе и удобстве. > >> Это про systemd было. > Увы, в systemd тоже этого не сделали. Я бы еще понял ругань, что в systemd отломали старые интерфейсы. С ininctl вообще какой-то абсурд. Он сообщения понимает, но просто плюется в логи, что обновляйте свой UPS. Cигналов в systemd как раз выше крыши: On 19/09/2023 14:00, Andrey Jr. Melnikov wrote: > Да, задизайнить > SIGRTMIN+4 в poweroff и SIGRTMIN+14 в immediate poweroff - смог Ну вот 2 сигнала уже есть. Точнее там другая интерпретация SIGPWR: готовьтесь, питание может кончится, а запускаемые скрипты уже могут что-то делать, хоть тот же powerstatus читать. Если питание вернулось, то для этого есть SIGRTMIN+0 Enters default mode, starts the default.target unit. This is mostly equivalent to systemctl isolate default.target. Ну просто мечта любителя сигналов.