Summary: | /etc/init.d/halt: umount /proc/bus/usb выполняется до передачи UPS команды на отключение. | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Sergey Y. Afonin <asy> | ||||||
Component: | startup | Assignee: | Alexey Gladkov <legion> | ||||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||||
Severity: | normal | ||||||||
Priority: | P2 | CC: | glebfm, ldv, legion, rider | ||||||
Version: | unstable | ||||||||
Hardware: | all | ||||||||
OS: | Linux | ||||||||
Attachments: |
|
Description
Sergey Y. Afonin
2005-04-13 20:06:34 MSD
И что вы предлагаете? Пока не знаю. А каков, вообще, смысл в отмонтировании usb ? И один не сильно хороший вариант, пока не прояснен вопрос с необходимостью отмонтирования USB. Вести список UPS, которые выдерживают паузу после получения команды. В случае обнаружения UPS из списка отложить отмонтирование. На сколько я помню APC-шные Смарты к таковым относятся. Попробую проверить завтра. Кстати, кажется еще одна бага: command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у ATX материнки. Если у нее в BIOS стоит "запоминать последнее состояние", то после подачи питания с UPS системник не включится. Я думаю, что если идет отключение по power fail, то должно быть halt, а не poweroff. Копирую из devel: ----- я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже. В кратце, команда killpower должна даваться бесперебойнику в K00, а не в S01. Поясняю. Критерием для начала процесса shutdown у apcupsd служит параметр в EEPROM UPS, который в отчете apcupsd называется MINTIMEL. Этот же параметр является задержкой для отключения питания у самого UPS после получения команы killpower. В результате, в текущей ситуации с halt 1. пока UPS отключит питание, успевает отработаться все. 2. если poweroff не сможет отключить питание, есть риск, что UPS отключится не по команде killpower, а просто потому, что батареи сели. ----- Еще бы на чем проверить... Created attachment 874 [details]
инитскрипт
инит-скрипт, проверяющий наличие UPS с отсрочкой отключения и передающий ему
команду killpower. Теоретически рассчитан на apcupcd и nut,
Created attachment 875 [details]
скрипт для проверки UPS
а это скрипт со списком UPS, на которые должен реагировать инит-скрипт.
Это уже только для apcupsd. Для NUT надо написать соответствующий upscheck.
Кстати, у меня есть жалоба человека, который уже "попал" с сервером на выходных. Его USB-шный Smart не поймал killpower, а питание восстановилось до того как батареи сели окончательно. В результате бесперебойник не выполнил цикл по питанию и сервер остался зашотдауненным. Начиная с 0.9.8.9-alt1, /proc больше не отмонтируется. Тоже вариант. Хотя, боюсь, как бы udev теперь на это не влиял... Постараюсь проверить. |