ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] apcupsd, incoming и /etc/init.d/halt
@ 2005-04-13 15:20 Sergey Y. Afonin
  2005-04-13 15:35 ` [devel] " Michael Shigorin
  0 siblings, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-13 15:20 UTC (permalink / raw)
  To: devel

Привет.

Пытаюсь положить в incoming apcupsd-3.10.17-alt1. И, что-то, не 
особо выходит. sisyphus_check ругается:

forbidden requires: /etc/rc.d/init.d(daemon) /etc/rc.d/init.d(killproc)

Пока никак не пойму, откуда такие зависимости берутся... :-(

А пока разбирался, посмотрел в halt и подозрительным показалось одно место:

=======
[ -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
=======

Я правильно понимаю, что после umount -n /proc/bus/usb /dev/usb идет
лесом и USB UPS уже не получит команду ?

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 15:20 [devel] apcupsd, incoming и /etc/init.d/halt Sergey Y. Afonin
@ 2005-04-13 15:35 ` Michael Shigorin
  2005-04-13 15:51   ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Michael Shigorin @ 2005-04-13 15:35 UTC (permalink / raw)
  To: devel

On Wed, Apr 13, 2005 at 08:20:30PM +0500, Sergey Y. Afonin wrote:
> Пытаюсь положить в incoming apcupsd-3.10.17-alt1. И, что-то, не
> особо выходит. sisyphus_check ругается:
> forbidden requires: /etc/rc.d/init.d(daemon) /etc/rc.d/init.d(killproc)

Это RH-style initscripts, ср. с /etc/init.d/template для оценки
различий.  Теперь принято пользовать start-stop-daemon, ну и вся
эта затея лечит весьма приличный вагон болячек (одно исправление
поведения service sshd restart уже оправдывает всю катавасию, как
на мой взгляд).

> А пока разбирался, посмотрел в halt и подозрительным показалось
> одно место:

Я бы сказал -- как минимум два...

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

Раз и

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

Отсутствие поддержки nut (или обобщённого сервиса, работающего
с UPS, дёргательный скрипт и базовый конфиг которого разделяют
те же apcupsd и nut).

Кажется, это повод для багрепортов -- развесите?

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 15:35 ` [devel] " Michael Shigorin
@ 2005-04-13 15:51   ` Sergey Y. Afonin
  2005-04-13 16:01     ` Sergey Y. Afonin
  2005-04-13 17:05     ` Dmitry V. Levin
  0 siblings, 2 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-13 15:51 UTC (permalink / raw)
  To: devel

On Wednesday 13 April 2005 20:35, Michael Shigorin wrote:

> Это RH-style initscripts, ср. с /etc/init.d/template для оценки
> различий.  Теперь принято пользовать start-stop-daemon, ну и вся

Тьфу блин. А вот в инитскрипт даже не посмотрел. Думал, что там

> Отсутствие поддержки nut (или обобщённого сервиса, работающего
> с UPS, дёргательный скрипт и базовый конфиг которого разделяют
> те же apcupsd и nut).

А вот это не NUT разьве ?

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

> Кажется, это повод для багрепортов -- развесите?

По поводу USB - да, а вот второе уточнить надо. :-)

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 15:51   ` Sergey Y. Afonin
@ 2005-04-13 16:01     ` Sergey Y. Afonin
  2005-04-13 17:05     ` Dmitry V. Levin
  1 sibling, 0 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-13 16:01 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 13 April 2005 20:51, Sergey Y. Afonin wrote:

> > Это RH-style initscripts, ср. с /etc/init.d/template для оценки
> > различий.  Теперь принято пользовать start-stop-daemon, ну и вся
> 
> Тьфу блин. А вот в инитскрипт даже не посмотрел. Думал, что там

Хм. Глюки. И в sent тоже так же фраза обрывается... Но я точно уверен,
что писал. 8-()

В общем, думал, что в пакете в obsoletes уже правильный инит-скрипт 
был.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 15:51   ` Sergey Y. Afonin
  2005-04-13 16:01     ` Sergey Y. Afonin
@ 2005-04-13 17:05     ` Dmitry V. Levin
  2005-04-14  8:25       ` [devel] [JT] " Michael Shigorin
  2005-04-14  8:46       ` [devel] " Sergey Y. Afonin
  1 sibling, 2 replies; 21+ messages in thread
From: Dmitry V. Levin @ 2005-04-13 17:05 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 634 bytes --]

On Wed, Apr 13, 2005 at 08:51:47PM +0500, Sergey Y. Afonin wrote:
> On Wednesday 13 April 2005 20:35, Michael Shigorin wrote:
[...]
> > Отсутствие поддержки nut (или обобщённого сервиса, работающего
> > с UPS, дёргательный скрипт и базовый конфиг которого разделяют
> > те же apcupsd и nut).
> 
> А вот это не NUT разьве ?
> 
> 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

$ rpmquery -f /sbin/upsdrvctl
nut-driver-2.0.1-alt2


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* [devel] [JT] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 17:05     ` Dmitry V. Levin
@ 2005-04-14  8:25       ` Michael Shigorin
  2005-04-14  8:46       ` [devel] " Sergey Y. Afonin
  1 sibling, 0 replies; 21+ messages in thread
From: Michael Shigorin @ 2005-04-14  8:25 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 366 bytes --]

On Wed, Apr 13, 2005 at 09:05:52PM +0400, Dmitry V. Levin wrote:
> > > Отсутствие поддержки nut (или обобщённого сервиса,
> > А вот это не NUT разьве ?
> $ rpmquery -f /sbin/upsdrvctl

I will use rpmquery before posting stupid assertions
I will use rpmquery before posting stupid assertions
I will use rpmquery before posting stupid assertions...

-- 
уф

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-13 17:05     ` Dmitry V. Levin
  2005-04-14  8:25       ` [devel] [JT] " Michael Shigorin
@ 2005-04-14  8:46       ` Sergey Y. Afonin
  2005-04-14  8:53         ` Nick S. Grechukh
  1 sibling, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14  8:46 UTC (permalink / raw)
  To: ALT Devel discussion list

Пока багзилла лежит (а что лежит, кстати ?), по поводу вариантов решения
https://bugzilla.altlinux.org/show_bug.cgi?id=6514

Не сильно хороший, но вариант, пока не прояснен вопрос с необходимостью 
отмонтирования USB. Вести список UPS, которые выдерживают паузу после получения 
команды. В случае обнаружения UPS из списка отложить отмонтирование. На сколько 
я помню APC-шные Смарты к таковым относятся. 
 
И по поводу еще одной предположительно баги:

command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у ATX 
материнки. Если у нее в BIOS стоит "запоминать последнее состояние", то после 
подачи питания с UPS системник не включится. Я думаю, что если идет отключение 
по power fail, то должно быть halt, а не poweroff. 

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14  8:46       ` [devel] " Sergey Y. Afonin
@ 2005-04-14  8:53         ` Nick S. Grechukh
  2005-04-14 11:34           ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Nick S. Grechukh @ 2005-04-14  8:53 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 964 bytes --]

On Thursday 14 April 2005 11:46, Sergey Y. Afonin wrote:
> Пока багзилла лежит (а что лежит, кстати ?), по поводу вариантов решения
> https://bugzilla.altlinux.org/show_bug.cgi?id=6514
>
> Не сильно хороший, но вариант, пока не прояснен вопрос с необходимостью
> отмонтирования USB. Вести список UPS, которые выдерживают паузу после
> получения команды. В случае обнаружения UPS из списка отложить
> отмонтирование. На сколько я помню APC-шные Смарты к таковым относятся.
> И по поводу еще одной предположительно баги:
> command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у
предполагается, что еще до этого сам ups ее отрубит. 
> ATX материнки. Если у нее в BIOS стоит "запоминать последнее состояние", то
а если не стоит, то тем более не включится. 
> после подачи питания с UPS системник не включится. Я думаю, что если идет
> отключение по power fail, то должно быть halt, а не poweroff.
ups дается команда на отключение именно для этого.

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14  8:53         ` Nick S. Grechukh
@ 2005-04-14 11:34           ` Sergey Y. Afonin
  2005-04-14 11:44             ` Sergey Y. Afonin
  2005-04-14 12:35             ` Dmitry V. Levin
  0 siblings, 2 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 11:34 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 13:53, Nick S. Grechukh wrote:

> > отмонтирование. На сколько я помню APC-шные Смарты к таковым относятся.
> > И по поводу еще одной предположительно баги:
> > command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у

> предполагается, что еще до этого сам ups ее отрубит. 

Это достаточно смелое предположение... В общем, чтобы не быть голословным,
я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже.
В кратце, команда killpower должна даваться бесперебойнику в K00, а не
в S01. Поясняю. Критерием для начала процесса shutdown у apcupsd служит 
параметр в EEPROM UPS, который в отчете apcupsd называется MINTIMEL. Этот
же параметр является задержкой для отключения питания у самого UPS после
получения команы killpower. В результате, в текущей ситуации с halt

1. пока UPS отключит питание, успевает отработаться все.

2. если poweroff не сможет отключить питание, есть риск, что UPS отключится
   не по команде killpower, а просто потому, что батареи сели.

Кто еще для каких UPS проверить может ?

> > ATX материнки. Если у нее в BIOS стоит "запоминать последнее состояние", то

> а если не стоит, то тем более не включится. 

Ну почему ? Вообще, у Intel, к примеру, три варианта на возврат напряжения: 
всегда включаться, оставаться в предыдущем состоянии, никогда не включаться.

> > после подачи питания с UPS системник не включится. Я думаю, что если идет
> > отключение по power fail, то должно быть halt, а не poweroff.

> ups дается команда на отключение именно для этого.

Ничего ничего подобного. Это у тех UPS, на которые просто рассчитывать не
стоит. Чисто настольные поделки скачек напряжения отработать. :-)

Тот же Smart UPS после отключения питания по killpower переходит в состояние
ожидания входного напряжения. После его появления он ждет минуту (или до
определенного заряда батарей - по выбору), после чего подает питание на 
свои выходные розетки, включая технику. Более того, у них предусмотрена и
ситуация с возвратом питания раньше времени: после получения killpower процесс
с обесточиванием не может быть прерван, иначе как ручным отключением UPS. Это
означает, что бесперебойник перезапустит остановленный по halt компьютер 
всегда. А если ему, компьютеру, сделали не halt, а poweroff, а в БИОС стоит
что-то отличное от "включать всегда", выходит конфуз. 

Кроме того, Smart UPS имеет возможность управлять работой компьютера по 
расписанию: скажем, с утра включить, а вечером выключить, сообщив о начале 
процесса killpower управляющему демону. АПС-шный парашут это точно понимает,
не знаю вот только, как apcupsd.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 11:34           ` Sergey Y. Afonin
@ 2005-04-14 11:44             ` Sergey Y. Afonin
  2005-04-14 12:35             ` Dmitry V. Levin
  1 sibling, 0 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 11:44 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 16:34, Sergey Y. Afonin wrote:

> Кто еще для каких UPS проверить может ?

И это, наверное, в багзиллу стоит в виде так/не так...

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 11:34           ` Sergey Y. Afonin
  2005-04-14 11:44             ` Sergey Y. Afonin
@ 2005-04-14 12:35             ` Dmitry V. Levin
  2005-04-14 13:18               ` Sergey Y. Afonin
  1 sibling, 1 reply; 21+ messages in thread
From: Dmitry V. Levin @ 2005-04-14 12:35 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1485 bytes --]

On Thu, Apr 14, 2005 at 04:34:30PM +0500, Sergey Y. Afonin wrote:
> On Thursday 14 April 2005 13:53, Nick S. Grechukh wrote:
> 
> > > отмонтирование. На сколько я помню APC-шные Смарты к таковым относятся.
> > > И по поводу еще одной предположительно баги:
> > > command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у
> 
> > предполагается, что еще до этого сам ups ее отрубит. 
> 
> Это достаточно смелое предположение...

Если не отрубит, то зачем он тогда нужен?

> В общем, чтобы не быть голословным,
> я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже.
> В кратце, команда killpower должна даваться бесперебойнику в K00, а не

Какого runlevel'а?

> Тот же Smart UPS после отключения питания по killpower переходит в состояние
> ожидания входного напряжения. После его появления он ждет минуту (или до
> определенного заряда батарей - по выбору), после чего подает питание на 
> свои выходные розетки, включая технику. Более того, у них предусмотрена и
> ситуация с возвратом питания раньше времени: после получения killpower процесс
> с обесточиванием не может быть прерван, иначе как ручным отключением UPS. Это
> означает, что бесперебойник перезапустит остановленный по halt компьютер 
> всегда. А если ему, компьютеру, сделали не halt, а poweroff, а в БИОС стоит
> что-то отличное от "включать всегда", выходит конфуз. 

Вы отстали от жизни, поскольку уже достаточно давно halt == poweroff.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 12:35             ` Dmitry V. Levin
@ 2005-04-14 13:18               ` Sergey Y. Afonin
  2005-04-14 13:28                 ` Dmitry V. Levin
  0 siblings, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 13:18 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 17:35, Dmitry V. Levin wrote:

> > > > command=/sbin/poweroff. Это приведет к тому, что будет отключено питание у
> > 
> > > предполагается, что еще до этого сам ups ее отрубит. 
> > 
> > Это достаточно смелое предположение...
> 
> Если не отрубит, то зачем он тогда нужен?

Я к тому, что UPS может это сделать не сразу, а с задержкой. Что бывает
полезно. Почему ? А вот как раз потому, что проблемы с #6514 в принципе
нет в случае такого UPS. Надо просто killpower сразу послать, а потом
шутдауном заниматься. Про "кто-то не успеет" речи быть не может 
принципиально: кто не успел, тот опоздал. Диктуется это просто оставшимся
зарядом батарей, они ждать не будут.

> > В общем, чтобы не быть голословным,
> > я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже.
> > В кратце, команда killpower должна даваться бесперебойнику в K00, а не
> 
> Какого runlevel'а?

Видимо, 2,3,4,5. И проверять, не по killpower ли уходим с ранлевела. 
Впрочем, это уже забота не halt, а еще ненаписанного скрипта для nut 
и apcupsd. Кстати, это снимает со startap проблему с #6514. Остается 
только договориться о наличии некого файла-флага "killpower-called", 
который будут создавать и удалять скрипты из nut и apcupsd и, в случае 
обнаружения которого, halt будет игнорировать попытку послать killpower.
Полностью это убирать не стоит из-за тех UPS, которые понимают killpower
буквально.

> > всегда. А если ему, компьютеру, сделали не halt, а poweroff, а в БИОС стоит
> > что-то отличное от "включать всегда", выходит конфуз. 
> 
> Вы отстали от жизни, поскольку уже достаточно давно halt == poweroff.

Да, но он что, по имени вызова не ориентируется, что ему делать ? Сюрприз...

А вот это тогда что в мане ?

       -p     When halting the system, do a poweroff. This is the default when
              halt is called as poweroff.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 13:18               ` Sergey Y. Afonin
@ 2005-04-14 13:28                 ` Dmitry V. Levin
  2005-04-14 14:08                   ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Dmitry V. Levin @ 2005-04-14 13:28 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 923 bytes --]

On Thu, Apr 14, 2005 at 06:18:00PM +0500, Sergey Y. Afonin wrote:
> On Thursday 14 April 2005 17:35, Dmitry V. Levin wrote:
[...]
> > > В общем, чтобы не быть голословным,
> > > я провел эксперименты с APC Smart UPS 700. Оказалось, что все еще хуже.
> > > В кратце, команда killpower должна даваться бесперебойнику в K00, а не
> > 
> > Какого runlevel'а?
> 
> Видимо, 2,3,4,5. И проверять, не по killpower ли уходим с ранлевела. 

Не вижу смысла менять устройство runlevel'ов.

> > > всегда. А если ему, компьютеру, сделали не halt, а poweroff, а в БИОС стоит
> > > что-то отличное от "включать всегда", выходит конфуз. 
> > 
> > Вы отстали от жизни, поскольку уже достаточно давно halt == poweroff.
> 
> Да, но он что, по имени вызова не ориентируется, что ему делать ? Сюрприз...

Извините, я, наверное, недостаточно точно выразился.
halt == poweroff на всех runlevel'ах, кроме 0 и 6.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 13:28                 ` Dmitry V. Levin
@ 2005-04-14 14:08                   ` Sergey Y. Afonin
  2005-04-14 14:16                     ` Dmitry V. Levin
  0 siblings, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 14:08 UTC (permalink / raw)
  To: ALT Devel discussion list

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 14:08                   ` Sergey Y. Afonin
@ 2005-04-14 14:16                     ` Dmitry V. Levin
  2005-04-14 16:43                       ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Dmitry V. Levin @ 2005-04-14 14:16 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1911 bytes --]

On Thu, Apr 14, 2005 at 07:08:30PM +0500, Sergey Y. Afonin wrote:
> On Thursday 14 April 2005 18:28, Dmitry V. Levin wrote:
> 
> > > Видимо, 2,3,4,5. И проверять, не по killpower ли уходим с ранлевела. 
> > 
> > Не вижу смысла менять устройство runlevel'ов.
> 
> Зачем менять ?! 
> 
> Просто скрипт с 
> # chkconfig: 2345 10 00
> 
> На S10 можно не реагировать.
> 
> Или я что не понимаю ? Если не понимаю, думаю, можно поправить 

Или я не понимаю, что вы предлагаете, или одно из двух.

> > 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
> 
> ?

Не всегда это удобно.
Если ups просто не умеет killpower, а bios не умеет запоминать состояние,
то poweroff оказывается гораздо практичнее, чем halt.
Похоже, что это поведение должно быть более управляемым, чем сейчас.


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 14:16                     ` Dmitry V. Levin
@ 2005-04-14 16:43                       ` Sergey Y. Afonin
  2005-04-14 17:10                         ` Sergey Y. Afonin
  2005-04-20 10:40                         ` Sergey Y. Afonin
  0 siblings, 2 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 16:43 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 19:16, Dmitry V. Levin wrote:

> > На S10 можно не реагировать.
> > 
> > Или я что не понимаю ? Если не понимаю, думаю, можно поправить 
> 
> Или я не понимаю, что вы предлагаете, или одно из двух.

:-) Сейчас попробую как-нибудь по-другому изложить. В общем, 
В пакеты nut и apcupsd добавляется init-скрипт с названием, скажем, 
killpowercheck, который содержит примерно следующий кусок кода
(bash у меня, что называется, со словарем, потому буду образно
писать местами):

start)
    rm -f /etc/powerkilled
    ;;
stop)
    if [правильный ups]; then

      UPSCTL=/etc/apcupsd/apccontrol
      if [ -x "$UPSCTL" -a -f /etc/apcupsd/powerfail ]; then
         action "Attempting to turn the UPS off:" "$UPSCTL" killpower
	 touch /etc/powerkilled 
         # или другое место root file system
      fi
 
      UPSCTL=/sbin/upsdrvctl
      if [ -x "$UPSCTL" -a -f /etc/killpower ]; then
         action "Attempting to turn the UPS off:" "$UPSCTL" shutdown
         touch /etc/powerkilled
      fi

    fi
    ;;

симлинк на скрипт в виде K00killpowercheck создается в... Так. Что-то
у меня такое ощущение сложилось на 6-ом году использования Линуксов с
Sys V, что я весьма в общем представляю, как работает Sys V init в плане 
отработки K*. Почему-то я считал, что K* текущего ранлевела запускаются, 
когда работа на ранлевеле завершается, а не когда на него попадаешь. В общем,
симлинк создается в /etc/rc.d/rc0.d (в остальных случаях, то есть в rc6, 
это не важно - там /etc/killpower или /etc/apcupsd/powerfail будут 
отсутствовать). У скрипта должно быть что-то вроде

# chkconfig: 12345 00 00

если я теперь правильно понимаю.

Соответственно в halt дописывается:

if [ ! -f /etc/powerkilled]; then  # отрицание "!", если не путаю ?
 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
fi

if [ -f /etc/powerkilled]; then
  command=/sbin/halt
fi

> то poweroff оказывается гораздо практичнее, чем halt.
> Похоже, что это поведение должно быть более управляемым, чем сейчас.

Вроде и с poweroff/halt разруливается заодно...

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 16:43                       ` Sergey Y. Afonin
@ 2005-04-14 17:10                         ` Sergey Y. Afonin
  2005-04-20 11:12                           ` Dmitry V. Levin
  2005-04-20 10:40                         ` Sergey Y. Afonin
  1 sibling, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-14 17:10 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 21:43, Sergey Y. Afonin wrote:

> В пакеты nut и apcupsd добавляется init-скрипт с названием, скажем, 
> killpowercheck,

А, может, правильнее его и в startup включить...

> который содержит примерно следующий кусок кода 
> (bash у меня, что называется, со словарем, потому буду образно
> писать местами):

> stop)
>     if [правильный ups]; then

...a вот тут сделать вызов специфического для nut или apcupsd
скрипта, который проверит, какой UPS подключен, сверит со
списком и вернет нужный код возврата.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 16:43                       ` Sergey Y. Afonin
  2005-04-14 17:10                         ` Sergey Y. Afonin
@ 2005-04-20 10:40                         ` Sergey Y. Afonin
  1 sibling, 0 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-20 10:40 UTC (permalink / raw)
  To: ALT Devel discussion list

On Thursday 14 April 2005 21:43, Sergey Y. Afonin wrote:

> Сейчас попробую как-нибудь по-другому изложить. В общем, 
> В пакеты nut и apcupsd добавляется init-скрипт с названием, скажем, 
> killpowercheck, который содержит примерно следующий кусок кода

Ну так что ?

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-14 17:10                         ` Sergey Y. Afonin
@ 2005-04-20 11:12                           ` Dmitry V. Levin
  2005-04-20 16:03                             ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Dmitry V. Levin @ 2005-04-20 11:12 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]

On Thu, Apr 14, 2005 at 10:10:19PM +0500, Sergey Y. Afonin wrote:
> On Thursday 14 April 2005 21:43, Sergey Y. Afonin wrote:
> 
> > В пакеты nut и apcupsd добавляется init-скрипт с названием, скажем, 
> > killpowercheck,
> 
> А, может, правильнее его и в startup включить...
> 
> > который содержит примерно следующий кусок кода 
> > (bash у меня, что называется, со словарем, потому буду образно
> > писать местами):
> 
> > stop)
> >     if [правильный ups]; then
> 
> ...a вот тут сделать вызов специфического для nut или apcupsd
> скрипта, который проверит, какой UPS подключен, сверит со
> списком и вернет нужный код возврата.

Я не понял, где согласно предлагаемой схеме должен происходить вызов
action "Attempting to turn the UPS off:" "$UPSCTL" killpower
(для apcupsd) или
action "Attempting to turn the UPS off:" "$UPSCTL" shutdown
(для nut)?

Если этот вызов будет до запуска /etc/init.d/halt, то до последнего
управление не дойдёт вообще.
Если этот вызов останется в /etc/init.d/halt, то что тогда будет делать
новый init-скрипт?


-- 
ldv

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-20 11:12                           ` Dmitry V. Levin
@ 2005-04-20 16:03                             ` Sergey Y. Afonin
  2005-04-21 10:16                               ` Sergey Y. Afonin
  0 siblings, 1 reply; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-20 16:03 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 20 April 2005 16:12, Dmitry V. Levin wrote:

> Если этот вызов будет до запуска /etc/init.d/halt, 

Более того, этот вызов должен быть вообще _самым_ первым. До 
начала останова сервисов.

> то до последнего управление не дойдёт вообще.

Дойдет. Я же описал алгоритм работы APC Smart UPS. После получения
killpower он делает это непосредственно перед концом батарей. То есть,
если указано начинать шотдаун за пять минут до конца батарей, то он
после получения killpower честно подождет эти самые пять минут, а не
положит питание сразу по получении killpower. За это время система
должна успеть завершить работу.

> Если этот вызов останется в /etc/init.d/halt, то что тогда будет делать
> новый init-скрипт?

В halt он останется для тех UPS, которые будут отсутствовать в списке
UPS для первого скрипта и при наличии которых первый скрипт не будет
делать killpower.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [devel] Re: apcupsd, incoming и /etc/init.d/halt
  2005-04-20 16:03                             ` Sergey Y. Afonin
@ 2005-04-21 10:16                               ` Sergey Y. Afonin
  0 siblings, 0 replies; 21+ messages in thread
From: Sergey Y. Afonin @ 2005-04-21 10:16 UTC (permalink / raw)
  To: ALT Devel discussion list

On Wednesday 20 April 2005 21:03, Sergey Y. Afonin wrote:

> Дойдет. Я же описал алгоритм работы APC Smart UPS. После получения
> killpower он делает это непосредственно перед концом батарей. То есть,
> если указано начинать шотдаун за пять минут до конца батарей, то он

А, несовсем точно. Просто у меня данные совпали на SLEEP (это из EEPROM),
то, что за задержку killpower отвечает и MINTIMEL в конфиге apcupsd:

Shutdown grace delay     SLEEP         180      020 180 300 600

Последняя группа цифр - допустимые значения. Мда, ситуация чуть
сложнее становится, если еще надо будет значение SLEEP учитывать.
У кого-то может и 20 сек стоять (и, похоже, именно это значение
и есть по-умолчанию). Тогда текущий вариант с хальт будет более 
правильный.

Значит, обсуждаемый скрипт надо не включать по-умолчанию и описать
в документации, что желающие это могут сделать при наличии нужного
UPS и уточнения времени задержки.

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


^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2005-04-21 10:16 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-04-13 15:20 [devel] apcupsd, incoming и /etc/init.d/halt Sergey Y. Afonin
2005-04-13 15:35 ` [devel] " Michael Shigorin
2005-04-13 15:51   ` Sergey Y. Afonin
2005-04-13 16:01     ` Sergey Y. Afonin
2005-04-13 17:05     ` Dmitry V. Levin
2005-04-14  8:25       ` [devel] [JT] " Michael Shigorin
2005-04-14  8:46       ` [devel] " Sergey Y. Afonin
2005-04-14  8:53         ` Nick S. Grechukh
2005-04-14 11:34           ` Sergey Y. Afonin
2005-04-14 11:44             ` Sergey Y. Afonin
2005-04-14 12:35             ` Dmitry V. Levin
2005-04-14 13:18               ` Sergey Y. Afonin
2005-04-14 13:28                 ` Dmitry V. Levin
2005-04-14 14:08                   ` Sergey Y. Afonin
2005-04-14 14:16                     ` Dmitry V. Levin
2005-04-14 16:43                       ` Sergey Y. Afonin
2005-04-14 17:10                         ` Sergey Y. Afonin
2005-04-20 11:12                           ` Dmitry V. Levin
2005-04-20 16:03                             ` Sergey Y. Afonin
2005-04-21 10:16                               ` Sergey Y. Afonin
2005-04-20 10:40                         ` Sergey Y. Afonin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git