Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
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
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 8885 из 10753 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           02 May 19 04:16:50
Кому : Victor Sudakov                                      02 May 19 04:16:50
Тема : Re: Как правильно готовить apcupsd
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+c3b53b4f
На   : area://RU.UNIX.BSD?msgid=2:5005/49+5cc9d920
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+5cca70fb
==============================================================================
01 мая 2019, среда, в 22:30 NOVT, Victor Sudakov написал(а):

EG>> Все эти недостатки исчезают, если вместо shutdown делать ребут и
EG>> на ранней стадии загрузки проверять уровень заряда батареи
EG>> и приостанавливать загрузку, если уровень низок - до тех
EG>> пор, пока он не поднимется выше порога. Если питание успело
EG>> восстановиться, то батарея зарядится и загрузка просто продолжится.
VS> Звучит красиво, но поскольку никто пока не предложил реализации этого в виде
VS> стартовых скриптов для FreeBSD (как минимум на уровне бета версии, которую можно
VS> было бы потестировать с реальной машиной и бесперебойником), оставляем этот
VS> алгоритм в области благопожеланий.

Спасение утопающих дело рук самих утопающих.

Кратенько: кладём в /root специальный конфиг такого вида,
который заставляет apcupsd раз в секунду выдавать состояние
упса на stdout, если запустить его через apcupsd -bf /root/apcupsd.conf

## apcupsd.conf v1.1 ##
UPSNAME ES550-RS
UPSCABLE usb
UPSTYPE usb
UPSCLASS standalone
POLLTIME 1
STATTIME 1
LOCKFILE /tmp
EVENTSFILE /dev/null
STATFILE /dev/fd/1
LOGSTATS off
DATATIME 0

Среди выдаваемых строчек будет уровень заряда, такого формата:

BCHARGE  : 100.0 Percent

И пишем код такого вида:

/root/bin/apcupsd -bf /root/apcupsd.conf | while read var colon val rest
do
  case "$var" in
  BCHARGE)
    val=${val%.*}
    [ "$val" -ge 10 ] && exit
  esac ;;
done

Hу и ему надо оформляж сделать с REQUIRE: disks и BEFORE: fsck,
и положить в /etc/rc.d/

В /root/bin положить статически слинкованный бинарь apcupsd,
потому что к моменту запуска скрипта разделяемые библиотеки
ещё могут быть не доступны. Порешать проблему с LOCKFILE
одним из двух способов: apcupsd не стартует, если не может
создать лок и надо либо ему это оторвать в сорцах, либо
в скрипте создать небольшую tmpfs для /tmp в памяти
и перед выходом её удалить.

Eugene
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

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