Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 18 Jan 24 18:16:22, всего сообщений: 10753
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 8871 из 10753 ===================================== RU.UNIX.BSD =
От   : Victor Sudakov                   2:5005/49          01 May 19 13:24:28
Кому : Eugene Grosbein                                     01 May 19 13:24:28
Тема : Как правильно готовить apcupsd
FGHI : area://RU.UNIX.BSD?msgid=2:5005/49+5cc93cb5
На   : area://RU.UNIX.BSD?msgid=2:5005/49+5cc52c97
= Кодировка сообщения определена как: CP866 ==================================
Ответ: area://RU.UNIX.BSD?msgid=2:5025/121+5cc9a92f
==============================================================================
Dear Eugene,

28 Apr 19 11:30, I wrote to you:

VS> Написал PR, там сейчас интересное обсуждение с мейнтейнером идёт:
VS> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237600

Вот некоторые выводы (дублирую из своего ЖЖ):

Алгоритм взаимодействия apcupsd с системой при её выключении не менялся уже 17 лет. По умолчанию apcupsd запускается с ключом --kill-on-powerfail, что означает: при исчерпании заряда аккумулятора в ИБП, послать ИБП команду "уснуть" и одновременно запустить процедуру doshutdown из /usr/local/etc/apcupsd/apccontrol. В ИБП обычно предусмотрена задержка (так называемый grace delay) 10-40 секунд исполнения команд "выключиться" и "уснуть". В этом месте начинается race: что случится раньше, shutdown успеет корректно завершиться или ИБП выключится?

В прежние времена, наверное, это всех устраивало, потому что выключение системы проходило быстро и shutdown успевал всё завершить до выключения питания. Хотя напомню, что значение по умолчанию rcshutdown_timeout="90" заведомо больше grace delay любого ИБП. Так что race condition никуда не девался на самом деле.

В нынешнее время с распространением виртуальных машин во время выключения хоста включено время выключения виртуалок, которое может быть весьма значительным. Я например устаналиваю rcshutdown_timeout="240" и kern.init_shutdown_timeout="300". Понятно, что в UPS grace delay не укладываемся точно.

Поэтому предлагаю новый алгоритм выключения системы посредством apcupsd, и открыл на эту тему ПР https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=237600 Суть нового алгоритма:

Запускаем apcupsd с ключом --term-on-powerfail

apcupsd_enable="YES"
apcupsd_flags="--term-on-powerfail"

это значит после запуска процедуры shutdown и создания флага /var/run/powerfail apcupsd должен выйти и не путаться пока под ногами.

А в конце /etc/rc.shutdown вписываем строчку

test -f /var/run/powerfail && /usr/local/sbin/apcupsd --hibernate
или
test -f /var/run/powerfail && /usr/local/sbin/apcupsd --power-off

(кому как удобнее, в зависимости от требуемого поведения ИБП после восстановления питания).

Это означает, что только после отработки всех rc.d скриптов с параметром stop в ИБП будет послана команда "уснуть" или "выключиться" соответственно.

Victor Sudakov, VAS4-RIPE, VAS47-RIPN
--- GoldED+/BSD 1.1.5-b20160322-b20160322
* Origin: Ulthar (2:5005/49)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.083456 секунды