|
НАЗВАНИЕ
rc0 - процедура остановки системы
СИНТАКСИС
/etc/rc0
ОПИСАНИЕ
Процедура /etc/rc0 вызывается при изменениях уровня выполнения системы, предполагающих ее деактивацию перед
выключением.
Вообще говоря, имеется три уровня, требующих выполнения процедуры rc0: уровень 0 (остановка) уровень 5 (передача управления программам в ПЗУ) уровень 6 (перезагрузка). Например, строка файла /etc/inittab может выглядеть так:
r0:0:wait:/etc/rc0 1> /dev/console 0>&1
Некоторые из действий, производимых процедурой rc0, выполняются файлами из каталога /etc/shutdown.d (что является атавизмом) и файлами, начинающимися с буквы K, из каталога /etc/rc0.d. Эти файлы выполняются в алфавитном порядке [подробнее см. пункт ФАЙЛЫ в rc2(1M)], деактивируя соответствующие системные службы. Таким образом, способ остановки определяется комбинацией команд процедуры rc0 и файлов из каталога /etc/rc0.d.
Рекомендуется, чтобы процедура rc0 выполняла следующую последовательность действий:
Различные службы (планировщик принтеров, демон регистрации ошибок и т.п.) нормально завершаются.
Если в систему добавляются новые службы, требующие аккуратного завершения при остановке системы, в каталог /etc/rc0.d следует добавить соответствующие файлы.
Всем выполняемым процессам посылается сигнал завершения SIGTERM, что дает им возможность аккуратно терминироваться.
После паузы всем оставшимся процессам посылается сигнал уничтожения SIGKILL [посредством команды killall(1M)], перехватить или проигнорировать который нельзя.
В результате предшествующих действий активными остаются лишь специальные системные процессы 0 и 1, а также процесс, связанный с /etc/rc0.
Остается смонтированной только корневая (/) файловая система.
Дальнейшие действия определяются уровнем выполнения (0, 5 или 6) и содержимым файла /etc/inittab. Если, как в случае уровня 0, в файле не определены дополнительные действия, операционная система ничего не делает и нет возможности получить ее отклик. Все, что можно сделать - это либо выключить питание, либо вызвать аппаратный монитор.
Процедура rc0 может быть выполнена только суперпользователем.
СМ. ТАКЖЕ
killall(1M), mountall(1M), rc2(1M), shutdown(1M).
kill(1) в Справочнике пользователя.
kill(2), inittab(4) в Справочнике программиста.
|