URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8475
[ Назад ]

Исходное сообщение
"Вопрос об уровнях выполнения"

Отправлено L_2009 , 11-Окт-09 14:36 
Здравствуйте!

Задача:
Необходимо написать скрипт-демон, который загружается при загрузке ОС и фиксирует причину завершения работы ОС (shutdown/reboot/crash).
Вопрос:
Каким образом, при получении сигнала SIGTERM, от init, узнать что СОБИРАЕТСЯ сделать система выключиться либо перезагрузиться?
Условия:
а) ОС - GNU/Linux - Gentoo
б) т.к. не желательно, чтобы скрипт был дистрибутивно зависим, прошу не советовать создавать дополнительные /etc/runlevels
в) cкрипт пишется на Perl

Пожалуйста, подскажите ответ на мой вопрос.

Спасибо, за Ваше время!


Содержание

Сообщения в этом обсуждении
"Re: Вопрос об уровнях выполнения"
Отправлено DeadMustdie , 11-Окт-09 16:34 
IMHO простейший вариант - написать шкрипт системы инициализации.
Тем самым поймаются все события переключения между уровнями исполнения.

Пока что за редким исключением (основное - Solaris) почти любая
UNIX/Linux система использует System V - подобную систему
инициализации, так что подход почти универсальный.

К сожалению (IMHO, конечно), последнее время возникла мода на событийно
управляемую модель инициализации. Стандарта на неё нет, каждый лабает
в меру собственного соображения и воображения - поэтому унификация
в данном вопросе постепенно теряется.


"Вопрос об уровнях выполнения"
Отправлено ACCA , 12-Окт-09 03:32 
>Каким образом, при получении сигнала SIGTERM, от init, узнать что СОБИРАЕТСЯ сделать
>система выключиться либо перезагрузиться?

Копай в сторону who -r

run-level 0 = shutdown,
6 = reboot.

Учти, что на run-level 1 совать свою шнягу крайне нежелательно. SIGTERM получишь, а что дальше будет - одному root'у известно.