On 24/09/2023 01:52, Andrey Jr. Melnikov wrote:
Вот и смотри - есть демон, который мониторит сосотяние UPS'a - пропало
питание - посылает сигнал, появилось - посылает сигнал (ну тут всё
стандартно, так уже лет 40 делают). Просто удобнее, когда у тебя есть
понимание - init дернул power-loss скриптик, в котором уже можно оценить
масштаб проблемы, остановить нужное и принять решение - ждём восстановления
или отключаемся. Или init дернул power-restored - когда поднимаем
остановленное или в зависимости от - тупо перезагружаемся.
Нет, через один SIGPWR это тоже всё решалось и решается, только вот скриптик
будет разляпистее.

Я все еще сомневаюсь, нужно ли здесь завязываться на init.

Почему обычный демон не может сам запускать, в зависимости от ситуации, либо power-loss, либо power-restored скрипты? В чем польза того, что в промежутке между ними init и сигналы?

Единственное преимущество от SIGPWR, которое я вижу, - это зафиксированный API. Недостаток - API очень ограниченный. Даже если добавить еще сигналов, то становится не очевидно, какому сигналу соответствует событие. /etc/inittab как известная точка конфигурации для меня не убедительное достоинство, не SysV init может использовать другой файл, чтобы назначать обработчики.

Если скрипты запускаются напрямую демоном, который слушает SNMP, то событий может быть несколько и со вполне нормальными именами. Главная проблема - договориться о именах скриптов и их параметрах. Иначе будет головная боль с тем, что у каждого производителя UPS они будут свои и не очень совместимые между собой. Да, договариваться сложно, уходящий корнями в прошлое SIGPWR, выглядит более знакомым и поэтому привлекательным.

Ответить