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 выполняла следующую последовательность действий:

  1. Прекращение работы системных служб и демонов

    Различные службы (планировщик принтеров, демон регистрации ошибок и т.п.) нормально завершаются.

    Если в систему добавляются новые службы, требующие аккуратного завершения при остановке системы, в каталог /etc/rc0.d следует добавить соответствующие файлы.

  2. Завершение процессов

    Всем выполняемым процессам посылается сигнал завершения SIGTERM, что дает им возможность аккуратно терминироваться.

  3. Уничтожение процессов

    После паузы всем оставшимся процессам посылается сигнал уничтожения SIGKILL [посредством команды killall(1M)], перехватить или проигнорировать который нельзя.

    В результате предшествующих действий активными остаются лишь специальные системные процессы 0 и 1, а также процесс, связанный с /etc/rc0.

  4. Размонтирование всех файловых систем

    Остается смонтированной только корневая (/) файловая система.

Дальнейшие действия определяются уровнем выполнения (0, 5 или 6) и содержимым файла /etc/inittab. Если, как в случае уровня 0, в файле не определены дополнительные действия, операционная система ничего не делает и нет возможности получить ее отклик. Все, что можно сделать - это либо выключить питание, либо вызвать аппаратный монитор.

Процедура rc0 может быть выполнена только суперпользователем.

СМ. ТАКЖЕ
killall(1M), mountall(1M), rc2(1M), shutdown(1M).
kill(1) в Справочнике пользователя.
kill(2), inittab(4) в Справочнике программиста.