The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"включение - выключение системы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"включение - выключение системы"  
Сообщение от greenetc (??) on 17-Мрт-06, 15:37 
Требуется вести базу данных включений - выключений системы а базе такой структуры :

id    pow_on_date     pow_on_time      pow_off_date      pow_off_time

то есть в одной записи mysql фиксировать дату и время включения, и выключения. Подскажите как сделать, то ли скриптами при старте и выключении системы, то ли отдельной прогой с отлавливанием сигналов TERM , HUP .

Пробую в программе перехватывать сигналы TERM и HUP, в обычной меленькой проге тестовой работает перехват ... (пример брал из info signal) ... а вот в проге с SDL не пашет чего то  ...  подскажите, может есть какие то возможности отключить возможность перехвата, и в этих сторонних библиотеках SDL заблокирован перехват ...

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "включение - выключение системы"  
Сообщение от chip email(ok) on 17-Мрт-06, 22:59 
>Требуется вести базу данных включений - выключений системы а базе такой структуры
>:
>
>id    pow_on_date     pow_on_time  
>   pow_off_date      pow_off_time
>
>то есть в одной записи mysql фиксировать дату и время включения, и
>выключения. Подскажите как сделать, то ли скриптами при старте и выключении
>системы, то ли отдельной прогой с отлавливанием сигналов TERM , HUP
>.
>
>Пробую в программе перехватывать сигналы TERM и HUP, в обычной меленькой проге
>тестовой работает перехват ... (пример брал из info signal) ... а
>вот в проге с SDL не пашет чего то  ...
> подскажите, может есть какие то возможности отключить возможность перехвата, и
>в этих сторонних библиотеках SDL заблокирован перехват ...

ИМХО, очень глупая затея. База данных на момент получение Вашей программой SIGTERM/SIGKILL (причем тут SIGHUP?!) уже может завершить свое выполнение. В итоге пролетите как фанерка над Парижем.

Я бы посмотрел в сторону парсинга utmp. В FreeBSD в ней заносятся, например, время shutdown, reboot:
     In the event of a date change, a shutdown or reboot, the following items
     are logged in the wtmp file.

     reboot
     shutdown  A system reboot or shutdown has been initiated.  The character
               `~' is placed in the field ut_line, and reboot or shutdown in
               the field ut_name (see shutdown(8) and reboot(8)).

     date      The system time has been manually or automatically updated (see
               date(1)).  The command name date is recorded in the field
               ut_name.  In the field ut_line, the character `|' indicates the
               time prior to the change, and the character `{' indicates the
               new time.


Если желание копаться в utmp нет, то прямой путь - last(1)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "включение - выключение системы"  
Сообщение от greenetc (ok) on 20-Мрт-06, 18:48 
>>Требуется вести базу данных включений - выключений системы а базе такой структуры
>>:
>>
>>id    pow_on_date     pow_on_time  
>>   pow_off_date      pow_off_time
>>
>>то есть в одной записи mysql фиксировать дату и время включения, и
>>выключения. Подскажите как сделать, то ли скриптами при старте и выключении
>>системы, то ли отдельной прогой с отлавливанием сигналов TERM , HUP
>>.
>>
>>Пробую в программе перехватывать сигналы TERM и HUP, в обычной меленькой проге
>>тестовой работает перехват ... (пример брал из info signal) ... а
>>вот в проге с SDL не пашет чего то  ...
>> подскажите, может есть какие то возможности отключить возможность перехвата, и
>>в этих сторонних библиотеках SDL заблокирован перехват ...
>
>ИМХО, очень глупая затея. База данных на момент получение Вашей программой SIGTERM/SIGKILL
>(причем тут SIGHUP?!) уже может завершить свое выполнение. В итоге пролетите
>как фанерка над Парижем.
>
>Я бы посмотрел в сторону парсинга utmp. В FreeBSD в ней заносятся,
>например, время shutdown, reboot:
>     In the event of a date change,
>a shutdown or reboot, the following items
>     are logged in the wtmp file.
>
>     reboot
>     shutdown  A system reboot or shutdown
>has been initiated.  The character
>            
>   `~' is placed in the field ut_line, and
>reboot or shutdown in
>            
>   the field ut_name (see shutdown(8) and reboot(8)).
>
>     date      The
>system time has been manually or automatically updated (see
>            
>   date(1)).  The command name date is recorded
>in the field
>            
>   ut_name.  In the field ut_line, the character
>`|' indicates the
>            
>   time prior to the change, and the character
>`{' indicates the
>            
>   new time.
>
>
>Если желание копаться в utmp нет, то прямой путь - last(1)


какие дебри ... всё решил гораздо проще ....

инициализация перехвата SIGTERM/SIGKILL должна производиться до инициализации SDL , пока не знаю почему, тогда всё работает ... написал маленькуюпрограммку , которая выполняет запрос INSERT з записью в поле pow_on_date значения CURDATE() а в pow_on_time - CURTIME() и просто вставил эту саму программку в стартовые скрипты ... а на выключение нормально реагирует, и никаких ранних ДЕинициализаций mysql не наблюдается .

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "включение - выключение системы"  
Сообщение от chip email(ok) on 20-Мрт-06, 19:07 

>какие дебри ... всё решил гораздо проще ....

Это большой "хак" и никак иначе это не назовешь. Работает в данном конкретном случае. И если уж на то пошло, то нужно рыть как минимум в направлении /etc/rc.shutdown (*BSD).

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "включение - выключение системы"  
Сообщение от Forth (??) on 21-Мрт-06, 09:52 
>инициализация перехвата SIGTERM/SIGKILL должна производиться до инициализации SDL , пока не знаю
>почему, тогда всё работает ... написал маленькуюпрограммку , которая выполняет запрос
>INSERT з записью в поле pow_on_date значения CURDATE() а в pow_on_time
>- CURTIME() и просто вставил эту саму программку в стартовые скрипты
>... а на выключение нормально реагирует, и никаких ранних ДЕинициализаций mysql
>не наблюдается .
man 5 utmp
Весь формат файла расписан в подробностях и весьма прост.
Кстати SIGKILL не перехватывается, если ставите обработчик - это бесполезный код.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру