RC0(1M)
НАЗВАНИЕ
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) в Справочнике программиста.