[devel] Re: apcupsd, incoming и /etc/init.d/halt

Sergey Y. Afonin =?iso-8859-1?q?asy_=CE=C1_altlinux=2Eru?=
Чт Апр 14 18:08:30 MSD 2005


On Thursday 14 April 2005 18:28, Dmitry V. Levin wrote:

> > Видимо, 2,3,4,5. И проверять, не по killpower ли уходим с ранлевела. 
> 
> Не вижу смысла менять устройство runlevel'ов.

Зачем менять ?! 

Просто скрипт с 
# chkconfig: 2345 10 00

На S10 можно не реагировать.

Или я что не понимаю ? Если не понимаю, думаю, можно поправить 
nut и apcupsd, чтобы они сами killpower бесперебойнику говорили, 
если UPS правильный. Только я не знаю, как UPS на повторный 
killpower реагировать будет. Потенциальная необходимость проверки,
не была ли команда killpower передана бесперебойнику, пока остается.

А проблему с тем, что некоторые, весьма распространенные UPS (даже
если окажется, что речь исключительно о Smart UPS), имеют шанс 
отключаться по разряду батарей, а не по команде, из-за того, что 
команда послана слишком поздно, надо как-то решить. В общем то, 
это для них, может, и не критично (они не Back все-таки), но оно 
неправильно. А вот если аналогично себя ведет APC Back UPS, то это 
будет просто убивать его батареи: у него механизма контроля заряда
нет и разряжать их он будет до упора. К сожалению, как говорил, 
проверить не на чем пока.

> > Да, но он что, по имени вызова не ориентируется, что ему делать ? Сюрприз...
> 
> Извините, я, наверное, недостаточно точно выразился.
> halt == poweroff на всех runlevel'ах, кроме 0 и 6.

Да, я так понял, что оно всегда стало poweroff делать. Но я все равно не понял, 
что мешает в /etc/init.d/halt заменить 

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

на 

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/halt
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/halt
fi

?

-- 
С уважением, Сергей Афонин
asy на altlinux.ru



Подробная информация о списке рассылки Devel