forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #51  
Старый 25.05.2019, 17:31
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: Как правильно готовить apcupsd

Eugene Grosbein написал(а) к Victor Sudakov в May 19 21:07:02 по местному времени:

25 мая 2019, суббота, в 09:29 NOVT, Victor Sudakov написал(а):

VS> А не знаешь, когда в bhyve появится гибернация VM, если вообще обещают?

Не интересовался.

Eugene
--- slrn/1.0.3 (FreeBSD)
Ответить с цитированием
  #52  
Старый 30.06.2019, 19:13
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: Как правильно готовить apcupsd

Eugene Grosbein написал(а) к All в Jun 19 22:01:41 по местному времени:

12 мая 2019, воскресенье, в 15:27 NOVT, Eugene Grosbein написал(а):

EG> 12 мая 2019, воскресенье, в 08:49 NOVT, Semen Panevin написал(а):

SP>> Thursday May 02 2019 22:22, Victor Sudakov писал Semen Panevin:
VS>>> Да, а чем обеспечивается, что данный скрипт запускается всегда
VS>>> последним перед halt?
SP>>>> depend() {
SP>>>> need mount-ro
SP>>>> }
SP>> Вот это гарантирует, что скрипт запустится после mount-ro скрипта, т.е. после
SP>> перемонтирования дисков в ro.
EG> Да, а ядро FreeBSD не перемонтирует файловые системы в ro, а отмонтирует.

Кстати сказать, уже три года как в FreeBSD есть фича "re-root",
вызываемая при помощи reboot -r, которая после полного завершения
работы системы и отмонтирования всех файловых систем
вместо горячей перезагрузки заставляет ядро заново смонтировать
указанную в vfs.root.mountfrom файловую систему в качестве рута
и начать загрузку с неё.

Можно создать md-диск, положить на него мелкую UFS с нужными
бинарниками (даже необязательно статическими), включая /sbin/init
и нужный код в качестве скрипта /etc/rc, который и продолжит
выполнение работы с UPS уже после штатного завершения работы системы.

Я эту фичу использовал, когда писал удалённую перепрошивку
роутера FreeBSD/MIPS32 с 8 мегабайтами встроенного флеша
и 128M памяти: скрипт умел проверить размер загружаемого образа (fetch -s),
загрузить образ в новосозданный RAM-диск нужного размера
(с добавкой под /sbin/init и остальное), скопировать туда нужные
скрипты и бинари, сделать kenv vfs.root.mountfrom=ufs:$md
и reboot -r. После чего init запускает /etc/rc с md-диска,
а тот может потом сказать init-у выполнить обычный горячий ребут
командой kill -INT 1. Работало: перепрошивало флеш и стартовало
с него новое ядро и систему.

Для работы с UPS должно быть ещё проще.
Пример такого скрипта, который автоматически вычисляет
необходимый размер md-диска и загружает на него указанный
список бинарей (и сам добавляет туда нужные либы) и скриптов:

http://www.grosbein.net/freebsd/mips/upgrade/upgrade

Eugene
--
Народу - чтоб не вздумал бунтовать! -
Мы тоже разрешили воровать.
Пусть лучше сам ворует потихоньку,
Чем с воровскою властью враждовать!..
--- slrn/1.0.3 (FreeBSD)
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:20. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot