#51
|
|||
|
|||
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
|
|||
|
|||
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) |