[Comm] nut and UPS shutdown
Alexey Borovskoy
=?iso-8859-1?q?alexey=5Fborovskoy_=CE=C1_mail=2Eru?=
Пн Июл 28 12:15:16 MSD 2003
* 28 Июль 2003 20:15 Grigory Batalov <grisxa на mail.ru>
> On Fri, 25 Jul 2003 22:29:01 +1300
>
> Alexey Borovskoy <alexey_borovskoy на mail.ru> wrote:
> > > В документации к NUT рекомендуется прописать в
> > > shutdown-скрипт строки типа:
> > >
> > > if (test -f /etc/killpower)
> > > then
> > > echo "Killing the power, bye!"
> > > /usr/local/ups/bin/upsdrvctl shutdown
> > > fi
> > >
> > > Поскольку у нас shutdown - не скрипт, то совершенно
> > > непонятно, куда их вписывать. Кто как поступает?
> > >
> > > P.S. 'upsdrvctl shutdown' инициирует выключение UPS
> > > (и нагрузки, соответственно) при невозможности
> > > дальнейшей работы от батарей.
> >
> > Я его запихал в /etc/init.d/halt
> > Там есть такие строки:
> >
> > # 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 turned off"
> > command=/sbin/poweroff
> > fi
> >
> > Вот этот приведенный кусочек скрипта и подвергнулся правке.
> > Был изменен путь к бинарнику и флагу_что_упс_на_батареях.
>
> Спасибо, это то, что нужно.
> Однако, при выполнении "shutdown" upsdrvctl вызывает драйвер
> от UPS с соответствующими параметрами, например:
>
> /usr/lib/nut/apcsmart -a ups250 -d 0 -k
>
> Если /usr располагается на отдельном разделе, то в этот
> момент он уже размонтирован. Так что команда "shutdown" UPS-у
> передана быть не может, в результате чего машина проходит
> дальнейшие стадии из /etc/init.d/halt и выключается по
> poweroff.
>
> Как этого избежать?
В документации на NUT, рекомендуют делать ремаунт раздела, на
котором лежит NUT, в readonly. Но это как-то криво.
У меня на этой бесперебойке висит сервак и часть свитчей опорного
сегмента сети. И я упустил из виду факт невыключения
бесперебойки, так как свитчи должны гаситься в последнюю очередь
и потребляют они совсем немного.
Я считаю, что надо перенести /usr/lib/nut в /lib/nut. А также
завести альтернативу для управления бесперебойками и
соответственно подправить скрипт halt в /etc/init.d/.
У меня на работе лежит nut, пересобранный указанным способом. Но
руки как-то не дошли его поставить.
Если будет нужна помощь в правке необходимых скриптов, то я могу
в этом помочь.
--
Алексей.
JID:alb на jabber.ru
Подробная информация о списке рассылки community