Bug 6514 - /etc/init.d/halt: umount /proc/bus/usb выполняется до передачи UPS команды на отключение.
: /etc/init.d/halt: umount /proc/bus/usb выполняется до передачи UPS команды на...
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/startup)
: unstable
: all Linux
: P2 normal
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2005-04-13 20:06 by
Modified: 2007-03-27 11:34 (History)


Attachments
инитскрипт (1.31 KB, text/plain)
2005-05-13 17:25, Sergey Y. Afonin
no flags Details
скрипт для проверки UPS (281 bytes, text/plain)
2005-05-13 17:28, Sergey Y. Afonin
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2005-04-13 20:06:34
umount для /proc/bus/usb выполняется до передачи бесперебойнику команды на 
отключение. Если UPS USB-шный, команду, я так понимаю, он не получит: 

[ -f /proc/bus/usb/devices ] && umount -n /proc/bus/usb >/dev/null 2>&1 

<skip> 

# See if this is a powerfail situation. 
UPSCTL=/etc/apcupsd/apccontrol 
if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then 
        action "Attempting to turn the UPS off:" "$UPSCTL" killpower 
        message="The system is halted" 
        command=/sbin/poweroff 
fi 

UPSCTL=/sbin/upsdrvctl 
if [ -x "$UPSCTL" -a -f /etc/killpower ]; then 
        action "Attempting to turn the UPS off:" "$UPSCTL" shutdown 
        message="The system is halted" 
        command=/sbin/poweroff 
fi
------- Comment #1 From 2005-04-13 20:44:00 -------
И что вы предлагаете?
------- Comment #2 From 2005-04-13 20:57:52 -------
Пока не знаю. А каков, вообще, смысл в отмонтировании usb ? 
------- Comment #3 From 2005-04-14 01:15:03 -------
И один не сильно хороший вариант, пока не прояснен вопрос с необходимостью 
отмонтирования USB. Вести список UPS, которые выдерживают паузу после получения 
команды. В случае обнаружения UPS из списка отложить отмонтирование. На сколько 
я помню APC-шные Смарты к таковым относятся. Попробую проверить завтра. 

Кстати, кажется еще одна бага: command=/sbin/poweroff. Это приведет к тому, что 
будет отключено питание у ATX материнки. Если у нее в BIOS стоит "запоминать 
последнее состояние", то после подачи питания с UPS системник не включится. Я 
думаю, что если идет отключение по power fail, то должно быть halt, а не 
poweroff. 
------- Comment #4 From 2005-04-14 15:42:56 -------
Копирую из devel: 
----- 
я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже. 
В кратце, команда killpower должна даваться бесперебойнику в K00, а не 
в S01. Поясняю. Критерием для начала процесса shutdown у apcupsd служит  
параметр в EEPROM UPS, который в отчете apcupsd называется MINTIMEL. Этот 
же параметр является задержкой для отключения питания у самого UPS после 
получения команы killpower. В результате, в текущей ситуации с halt 
 
1. пока UPS отключит питание, успевает отработаться все. 
 
2. если poweroff не сможет отключить питание, есть риск, что UPS отключится 
   не по команде killpower, а просто потому, что батареи сели. 
----- 
 
Еще бы на чем проверить... 
 
 
 
------- Comment #5 From 2005-05-13 17:25:33 -------
Created an attachment (id=874) [details]
инитскрипт

инит-скрипт, проверяющий наличие UPS с отсрочкой отключения и передающий ему
команду killpower. Теоретически рассчитан на apcupcd и nut, 
------- Comment #6 From 2005-05-13 17:28:49 -------
Created an attachment (id=875) [details]
скрипт для проверки UPS

а это скрипт со списком UPS, на которые должен реагировать инит-скрипт.
Это уже только для apcupsd. Для NUT надо написать соответствующий upscheck.
------- Comment #7 From 2005-05-13 17:36:50 -------
Кстати, у меня есть жалоба человека, который уже "попал" с сервером на 
выходных. Его USB-шный Smart не поймал killpower, а питание восстановилось до 
того как батареи сели окончательно. В результате бесперебойник не выполнил 
цикл по питанию и сервер остался зашотдауненным. 
------- Comment #8 From 2007-03-26 16:54:49 -------
Начиная с 0.9.8.9-alt1, /proc больше не отмонтируется.
------- Comment #9 From 2007-03-27 11:34:08 -------
Тоже вариант. 

Хотя, боюсь, как бы udev теперь на это не влиял...
Постараюсь проверить.